struts-if条件不起作用

时间:2016-12-09 03:18:00

标签: java jsp struts2 ognl

过去2天我面临一个特殊的问题,但找不到原因。

我在JSP文件中有一个IF条件来检查给定的布尔变量是否为真。如果是,我正在显示菜单。我正在检查4个不同的变量,其中3个变量正在工作,除了1.如果任何一个变量superAdmin, admin and requester为真,则显示列表。但如果变量person为真,则不显示列表。

我尝试使用<s:hidden...>在屏幕上打印变量的值,它将值打印为TRUE。该变量设置为true并传递给UI。仍然,IF条件不检查布尔变量person,因此列表不会显示在屏幕上。请指导我错在哪里。

<s:if test="%{#session.userDetails.superAdmin || #session.userDetails.admin || #session.userDetails.person || #session.userDetails.requester}">
    <li><a href="../displays/MeasurementsByAdministrator.action" onclick="javascript:startCfaPB()">Member Measurements</a></li>
</s:if>

3 个答案:

答案 0 :(得分:0)

根据您的帖子,您说如果变量 if($('#MyForms').valid()) { // Do something (Valid) } else { // Do something (invalid) }person,则不应显示该列表,否则应在其true时显示。

因此,if条件应为false,因此!#session.userDetails.person

答案 1 :(得分:0)

试试这个:

<s:if test="#session.userDetails.superAdmin || #session.userDetails.admin || #session.userDetails.person || #session.userDetails.requester">
    <li><a href="../displays/MeasurementsByAdministrator.action" onclick="javascript:startCfaPB()">Member Measurements</a></li>
</s:if>

答案 2 :(得分:0)

这是你应该检查它是否有效然后你有其他变量的问题。

<s:if test="%{#session.userDetails.person || #session.userDetails.requester}">
    <li><a href="../displays/MeasurementsByAdministrator.action" onclick="javascript:startCfaPB()">Member Measurements</a></li>
</s:if>