一、struts2标签注意事项
(一)要引入标签库:<%@taglib uri="/struts-tags" prefix="s" %>
(二)property中的value是object类型:<s:property value="username"/> 这样会被解析成ognl表达式
如果要取字符串的话需要加上单引号:<s:property value=" ‘username’ "/>
(三)set标签用于更换变量的名字,就是起别名,方便使用
set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" />
set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/>
set 使用#取值: <s:property value="#adminPassword"/>
(四)bean标签 如果没有指定var值,该类会被压入valueStack中位于栈顶;
可以直接取值:<s:bean name="action.Dog" >
<s:param name="name" value="'pp'"></s:param>
<s:property value="name"/>
</s:bean>
当指定var值,则值将被传入actionContext中,取值时需要使用#key:
取值:<s:bean name="action.Dog" var="myDog">
<s:param name="name" value="'oudy'"></s:param>
</s:bean>
<s:property value="#myDog.name"/>
(五)include标签当包含中文字符时,容易出各种问题尽量少用;
可以使用jsp的文件包含:
加载<%@ include file="b.jsp">,则是先包含后执行(静态包含)
加载<jsp:include page="b.jsp" />则是先执行结果,然后将结果包括到主页面。(动态包含)
(六)iterator标签的使用方法:
<li>自定义变量:<br />
<s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
<s:property value="#x.toUpperCase()"/> |
</s:iterator>
</li>
<li>使用status:<br />
<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"/>
<br />
</s:iterator>
在定义Map时,要加上#
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
<s:property value="key"/> | <s:property value="value"/> <br />
</s:iterator>
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
</s:iterator>