<S:如果>为布尔值测试表达式评价;如预期不起作用

Aka*_*ain 7 java jsp struts2 boolean-expression ognl

我想检查变量的值,bool_val使用Struts2的标签<s:if>,但它不工作.

<%@ taglib prefix="s" uri="/struts-tags" %>

<%boolean bool_val=true;%>
real value : <%=bool_val%><br/>
expression evaluated value : 
<s:if test="%{bool_val==true}">
    TRUE
</s:if><s:else>
    FLASE
</s:else>
Run Code Online (Sandbox Code Playgroud)

我也尝试下面的测试表情太多,但仍然没有工作.

<!-- 
bool_val
bool_val==true
%{bool_val}
%{bool_val==true}
%{bool_val=="true"}
 -->
Run Code Online (Sandbox Code Playgroud)

Vis*_*uth 8

使用struts标签创建一个这样的变量

<s:set var="bool_val" value="true" />
expression evaluated value : 
<s:if test="%{#bool_val == true}">
    TRUE
</s:if><s:else>
    FALSE
</s:else>
Run Code Online (Sandbox Code Playgroud)

这是一个示例教程.


Rom*_*n C 2

除非将该变量放入值堆栈,否则不能在 Struts 标记中使用 scriptlet 变量。但你最好不要使用 scriptlet 变量,而是使用变量值。

<%@ taglib prefix="s" uri="/struts-tags" %>

<%boolean bool_val=true;%>
real value : <%=bool_val%><br/>
expression evaluated value : 
<s:set var="bool_val"><%=bool_val%></s:set>
<s:if test="#bool_val == 'true'">
    TRUE
</s:if><s:else>
    FALSE
</s:else>
Run Code Online (Sandbox Code Playgroud)