簡體   English   中英

<s:if>布爾值的測試表達式評估未按預期工作

[英]<s:if> test expression evaluation for boolean value doesn't work as expected

我想使用 Struts 2 標簽<s:if>檢查變量bool_val值,但它不起作用。

<%@ 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>

我也嘗試過以下測試表達式,但仍然無法正常工作。

<!-- 
bool_val
bool_val==true
%{bool_val}
%{bool_val==true}
%{bool_val=="true"}
 -->

使用 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>

這是一個示例教程

Visruth CV 建議的版本有一個較短的版本:

<s:set var="foo" value="true" />

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

如果您想根據 Action 屬性檢查布爾值,可以使用以下方法:

class FooAction extends ActionSupport {
    private Boolean _bar = true;

    public Boolean isBar() { return _bar; }
}

在jsp文件中:

expression evaluated value : 
<s:if test="isBar()">
    TRUE
</s:if>
<s:else>
    FALSE
</s:else>

您不能在 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>

如果 Action 類中布爾變量的 getter 方法是isBool()則使用<s:if test="bool"> 關鍵是去除is從方法的名稱和用途。 例如,如果方法是isApple()使用<s:if test="apple">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM