1) struts2 tags
1.<s:property>
property: <s:property value="username"/> //查文档,若value的类型为Object,则为OGNL表达式
property 取值为字符串: <s:property value="'username'"/> </li>
property 设定默认值: <s:property value="admin" default="管理员"/>
property 设定HTML: <s:property value="'<hr/>'" escape="false"/>
set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" />
set 从request取值: <s:property value="#request.adminName" />
set 从ActionContext取值: <s:property value="#adminName" />
set 设定范围: <s:set name="adminPassword" value="password" scope="page"/>
set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %>
set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/>
set 使用#取值: <s:property value="#adminPassword"/>
set 从相应范围取值: <s:property value="#session.adminPassword"/>
2. <s:bean >
定义bean,并使用param来设定新的属性值:
<s:bean name="com.bjsxt.struts2.tags.Dog" >
<s:param name="name" value="'pp'"></s:param>
<s:property value="name"/> //把刚设进去的name拿出来
</s:bean>
bean 查看debug情况:
<s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
<s:param name="name" value="'oudy'"></s:param>
</s:bean>
拿出值:
<s:property value="#myDog.name"/> //出了<s:bean>,必须到Action context里去拿
3. <s:include>
include _include1.html 包含静态英文文件
<s:include value="/_include1.html"></s:include>
//尽量不要使用struts2的 include标签,中文问题解决方法无规律
include _include2.html 包含静态中文文件 <s:include value="/_include2.html"></s:include>
include _include1.html 包含静态英文文件,说明%用法
<s:set var="incPage" value="%{'/_include1.html'}" />
<s:include value="%{#incPage}"></s:include>
4. <s: if ><s:elseif ><s:else>
age = <s:property value="#parameters.age[0]" />
<s:set var="age" value="#parameters.age[0]" />
<s:if test="#age < 0">wrong age!</s:if>
<s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
<s:else>yeah!</s:else>
<s:if test="#parameters.aaa == null">null</s:if>
5. <s:iterator>
<s:iterator value="{1, 2, 3}" >
<s:property/> | // 用<s:property/>可直接拿出
</s:iterator>
自定义变量:
<s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x"> //var="x"指向当前遍历到的那个元素
<s:property value="#x.toUpperCase()"/> |
</s:iterator>
使用status:
<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
<s:property/> |
遍历过的元素总数: <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>
遍历Map
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" > //Map集合,前面加个#
<s:property value="key"/> | <s:property value="value"/>
</s:iterator>
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/>
</s:iterator>
6.<s:fielderror>
<s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>