首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >布尔值的<s:if>测试表达式计算不像预期的那样工作

布尔值的<s:if>测试表达式计算不像预期的那样工作
EN

Stack Overflow用户
提问于 2014-04-15 05:51:07
回答 4查看 40.8K关注 0票数 9

我想使用Struts 2标记bool_val检查变量<s:if>的值,但它不起作用。

代码语言:javascript
复制
<%@ 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>

我也尝试过跟随测试表达式,但仍然不起作用。

代码语言:javascript
复制
<!-- 
bool_val
bool_val==true
%{bool_val}
%{bool_val==true}
%{bool_val=="true"}
 -->
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-15 09:50:35

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

代码语言:javascript
复制
<%@ 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>
票数 2
EN

Stack Overflow用户

发布于 2014-04-15 06:26:45

使用struts标记创建这样的变量

代码语言:javascript
复制
<s:set var="bool_val" value="true" />
expression evaluated value : 
<s:if test="%{#bool_val == true}">
    TRUE
</s:if><s:else>
    FALSE
</s:else>

这是一个样本教程

票数 9
EN

Stack Overflow用户

发布于 2015-04-14 08:35:50

比Visruth CV推荐的版本更短:

代码语言:javascript
复制
<s:set var="foo" value="true" />

expression evaluated value : 
<s:if test="foo">
    TRUE
</s:if><s:else>
    FALSE
</s:else>

如果您想要对照Action属性检查布尔值,下面是方法:

代码语言:javascript
复制
class FooAction extends ActionSupport {
    private Boolean _bar = true;

    public Boolean isBar() { return _bar; }
}

在jsp文件中:

代码语言:javascript
复制
expression evaluated value : 
<s:if test="isBar()">
    TRUE
</s:if>
<s:else>
    FALSE
</s:else>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23075594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档