标签:奇数 specific title 方法 spec bean constant art 元素
//前端 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> 訪问属性 <a href="<%=contextPath %>/tags.action?username=u&password=p">tags</a> </body> </html>
//struct.xml <constant name="struts.ui.theme" value="simple" /> <package name="tags" extends="struts-default"> <action name="tags" class="com.struts2.tags.TagsAction"> <result>/tags.jsp</result> </action> </package>
//类包
package com.struts2.tags;
import com.opensymphony.xwork2.ActionSupport;
public class TagsAction extends ActionSupport {
private String password;
private String username;
public TagsAction() {
}
public String execute() {
this.addFieldError("fielderror.test", "wrong!");
return SUCCESS;
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
}//展示
</head>
<body>
<ol>
<li>property: <s:property value="username"/> </li>
<li>property 取值为字符串: <s:property value="‘username‘"/> </li>
<li>property 设定默认值: <s:property value="admin" default="管理员"/> </li>
<li>property 设定HTML: <s:property value="‘<hr/>‘" escape="false"/> </li>
<hr />
<li>set 设定adminName值(默觉得request 和 ActionContext): <s:set var="adminName" value="username" /></li>
<li>set 从request取值: <s:property value="#request.adminName" /></li>
<li>set 从ActionContext取值: <s:property value="#adminName" /></li>
<%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li>
<li>set 从对应范围取值: <%=pageContext.getAttribute("adminPassword") %></li>
--%>
<li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li>
<li>set 使用#取值: <s:property value="#adminPassword"/> </li>
<li>set 从对应范围取值: <s:property value="#session.adminPassword"/> </li>
<hr />
<%--<li>push:<s:set name="myDog" value="new com.bjsxt.struts2.ognl.Dog(‘oudy‘)"></s:set></li>
<li>
push:<s:push value="#myDog">
<s:property value="name"/>
</s:push>
</li>
<li>push: <s:property value="name"/></li>
--%>
<hr />
<li>bean 定义bean,并使用param来设定新的属性值:
<s:bean name="com.bjsxt.struts2.tags.Dog" >
<s:param name="name" value="‘pp‘"></s:param>
<s:property value="name"/>
</s:bean>
</li>
<li>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"/>
</li>
<hr />
<li>include _include1.html 包括静态英文文件
<s:include value="/_include1.html"></s:include>
</li>
<li>include _include2.html 包括静态中文文件
<s:include value="/_include2.html"></s:include>
</li>
<li>include _include1.html 包括静态英文文件。说明%使用方法
<s:set var="incPage" value="%{‘/_include1.html‘}" />
<s:include value="%{#incPage}"></s:include>
</li>
<hr />
<li>if elseif else:
age = <s:property value="#parameters.age[0]" /> <br />
<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><br />
<s:if test="#parameters.aaa == null">null</s:if>
</li>
<hr />
<li>遍历集合:<br />
<s:iterator value="{1, 2, 3}" >
<s:property/> |
</s:iterator>
</li>
<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>
</li>
<li>
<s:iterator value="#{1:‘a‘, 2:‘b‘, 3:‘c‘}" >
<s:property value="key"/> | <s:property value="value"/> <br />
</s:iterator>
</li>
<li>
<s:iterator value="#{1:‘a‘, 2:‘b‘, 3:‘c‘}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
</s:iterator>
</li>
<li>
<s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>
</li>
</ol>
</body>
</html>
-> struct.xml配置,调用TagsAction.java类。初始化对象,并对对象设置初值。
<package name="tags" extends="struts-default"> <action name="tags" class="com.struts2.tags.TagsAction"> <result>/tags.jsp</result> </action> </package>-> 依据struct.xml配置的结果信息,将结果传递到<result>/tags.jsp</result>中说明的tag.jsp中进行显示,并通过标签进
property标签: <li>property: <s:property value="username"/> </li> <li>property 取值为字符串: <s:property value="‘username‘"/> </li> <li>property 设定默认值: <s:property value="admin" default="管理员"/> </li> <li>property 设定HTML: <s:property value="‘<hr/>‘" escape="false"/> </li>分析:
set标签: <li>set 设定adminName值(默觉得request 和 ActionContext): <s:set var="adminName" value="username" /></li> <li>set 从request取值: <s:property value="#request.adminName" /></li> <li>set 从ActionContext取值: <s:property value="#adminName" /></li> <s:debug></s:debug> <li>set 设定var。范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li> <li>set 使用#取值: <s:property value="#adminPassword"/> </li> <li>set 从对应范围取值: <s:property value="#session.adminPassword"/> </li>分析:
bean标签: <li>bean 定义bean,并使用param来设定新的属性值: <s:bean name="com.struts2.tags.Dog" > <s:param name="name" value="‘pp‘"></s:param> <s:property value="name"/> </s:bean> </li> <li>bean 查看debug情况: <s:bean name="com.struts2.tags.Dog" var="myDog"> <s:param name="name" value="‘oudy‘"></s:param> </s:bean> 拿出值: <s:property value="#myDog.name"/> </li>分析:
include标签
<s:set var="incPage" value="%{‘/_include1.html‘}" />
<s:include value="%{#incPage}"></s:include>%{}作用:将其强制转为ognl表达式;<hr /> <li>if elseif else: age = <s:property value="#parameters.age[0]" /> <br /> <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><br /> <s:if test="#parameters.aaa == null">null</s:if> </li> <hr />通过set设置短名称;
<li>遍历集合:<br />
<s:iterator value="{1, 2, 3}" >
<s:property/> |
</s:iterator>
</li>
<li>自己定义变量:<br />
<s:iterator value="{‘aaa‘, ‘bbb‘, ‘ccc‘}" var="x">
<s:property value="#x.toUpperCase()"/> |
</s:iterator>
</li> 分析:字符串集合,var = "x"相当于for循环里面定义的暂时变量,集合中的每一个值取出来,每循环一次把值放到x里面。利用#进行訪问就能够。
<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>
</li> 分析:status作用If specified, an instanceof IteratorStatus will be pushed into stack upon each iteration通过对status取值。来得到循环情况
<li>
<s:iterator value="#{1:‘a‘, 2:‘b‘, 3:‘c‘}" >
<s:property value="key"/> | <s:property value="value"/> <br />
</s:iterator>
</li>
<li>
<s:iterator value="#{1:‘a‘, 2:‘b‘, 3:‘c‘}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
</s:iterator>
</li> 分析:定义map时,须要在前面加上#;
【web开发学习笔记】Struts-Tags学习笔记1 - 通用标签和控制标签
标签:奇数 specific title 方法 spec bean constant art 元素
原文地址:http://www.cnblogs.com/yutingliuyl/p/6723167.html