项目中我们经常用到struts标签,关于s:if 标签遇到并解决的几种写法:
一、正常写法:
①、当tUser 是对象是
<s:if test ="tUser!=null"></s:if>
②、迭代tUser,sex是String类型:
<s:if test="tUser!=null">
<s:if test="tUser.sex == '1' ">
男
</s:if>
<s:elseif test="tUser.sex== '2' " >
女
</s:elseif>
<s:else>
保密
</s:else>
</s:if>
③、OGNL表达式 :%{}
在struts2的标签内部,使用%{}这样的形式
<s:if test="student=='all'">
<table>
<s:if test="studentList.size>0">
<s:iterator value="studentList" id="student">
<s:if test="%{#student.sex == 1}">
<tr>
<td>郭美美</td>
</tr>
</s:if>
<s:if test="%{#student.sex == 2}">
<tr>
<td>李刚</td>
</tr>
</s:if>
</s:iterator>
</s:if>
</table>
</s:if>
④、EL表达式:${}
在标签外部可以使用${}EL语言的方式。在struts2的标签内部不允许使用${}这样的形式。
③、④、总结:很多时候,我们使用struts2的一些标签,属性是需要接受集合的,如果集合是保存在request,session,或者是值栈(非根对象的栈顶),可以使用#变量名的方式,如果获取的值是在Action中通过特定的方法来获取,就需要使用如 value="list"这样的方式,只是去掉了前面的#。