Struts 2ラベルif

1823 ワード

基本的なプロセス制御.'If′タグは、単独で用いるもよいし、「Else If′タグ」および(または)1つ以上の「Else」とともに用いるもよい.
名前
必須
デフォルト値
を選択します.
説明
test
true
 
Boolean
Ifタグの内容が表示されるかどうかを決定する式
id
false
 
Object/String
このIdは、UIおよびformタグに対応するhtmlタグのid属性である
Example:
<s:if test="%{false}">
    <div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
    <div>Will Be Executed</div>
</s:elseif>
<s:else>
    <div>Will Not Be Executed</div>
</s:else>

 Notice:
test条件で比較文字列の場合:
ネット検索では、次のような表現が表示されます.
<s:set name="isok" value="#isok"/>
<s:property value="#isok"/>              Y
<s:if test="#isok=='Y'">
yes
</s:if>
<s:else>
no
</s:else>
  : 
<s:iftest='%{isok=="Y"}'> 
yes
</s:if>
<s:else>
no
</s:else>

しかし私は自分のコードの中で2種類のコードをテストしてすべて正しく判断することができなくて、毎回結果の出力はやはりnoが絶えずデバッグを経て、判断の文を変えることを発見します
<:iftest='%{customervo.contry=Y}'>,Yの二重引用符を押すと,意外にも成功した!
まあ、そうしましょう.今度は何度もやってみましょう.
2010-10-18新しい状況actionでパラメータfavor=1を出力するとyesが正しく印刷されます
<s:if test="%{favor==1}">
yes
</s:if>
<s:else>
no
</s:else>

 
しかし、同じ条件でパラメータfavor=Tが出力された場合、印刷されたのはnoで、Tに単引用符を付けるか出力noを付けるか、これはstruts 2 tagのバグなのか、資料を調べる価値がある.
<s:if test="%{favor==T}">
yes
</s:if>
<s:else>
no
</s:else>