记几个Struts2常用的几个标签,
一、property
1. 取值栈里属性的值 value里是OGNl表达式
<s:property value="username"/>
2. 直接输出字符串
<s:property value="'username'"/>
3. 设置默认值, 假设userName在值栈不存在值为null,default设置默认值
<s:property value="userName" default="管理员"/>
4. escape 设置输出的html标签会不会被解析 false表示不会被解析 会当做字符串输出
<s:property value="'<br/>'" escape="false"/>
二、 set
1. 设定值(个人理解就是var申明个变量在赋个值),scope不设置会默认存到ActionContext和request里
所以取值的时候别忘了加“#” 似乎用El表达式可以直接得到 还没试 Ps: uName是OGNL表达式 存字符串加 ' '
<s:set name="userName" value="uName" scope="page"/>
三、 bean
1. bean标签开始的时候是存在值栈里,param里uName是userInfo的属性,赋值的时候value搞清楚到底是存字符串还是OGNL表达式,bean标签结束后存到ActionContext里 取值加#
<s:bean name="userPackage.userInfo" var="user">
<s:param name="uName" value="'anndy'"></s:param>
</s:bean>
四、 逻辑判断 if else
1. test里写的是判断的条件 也可以单if使用
<s:if test="uname ==\" 白色\" ">白色</s:if>
<s:elseif test="uname ==\" 黑色\" ">黑色</s:elseif>
<s:else>彩色</s:else>
五、 迭代器 遍历
1. value里可以是 map list。。。。status表示状态,也有一些属性,除了输出索引,下面的四个都返回Boolean, 感觉还是jstl好用写。。。。
<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status" var="d">
<s:property value="#d"/>
遍历过的元素总数:<s:property value="#status.count"/> |
遍历过的元素索引:<s:property value="#status.index"/> |
是否偶数:<s:property value="#status.even"/> |
是否奇数:<s:property value="#status.odd"/> |
是否是第一个元素:<s:property value="#status.first"/> |
是否是最后一个元素:<s:property value="#status.last"/>
</s:iterator>