Struts2的常用标签
1、iterator标签
里面还有个属性:status;该属性指定迭代时的IteratorStatus实例,该实例包含如下几个方法:
int getCount(),返回当前迭代了几个元素
int getIndex(),返回当前迭代元素的索引
boolean isEven(),返回当前被迭代元素的索引是否是偶数
boolean isOdd(),……奇数
boolean isFirst(),返回当前被迭代元素是否是第一个元素
boolean isLast(),……最后一个元素
2、url标签
<s:url action=”huhui” namespace=”/huhui”>
<s:param name=”personid” value=”23”/>
</s:url>
其中value属性值默认作为OGNL表达式处理
<s:set name=”myurl” value=”’http://www.baidu.com’”/>
<s:url value=”#myurl”/><br>
<s:url value=”%{#myurl}”/><br>
其中value属性值默认作为字符串类型处理,故第一个输出的值是“#myurl”,第二个输出的值是百度网址,“%”符号的用途是计算OGNL表达式的值。
3、表单标签checkboxlist复选框(radio单选框与复选框基本相同)
为防止标签自动生成一些Html代码,在struts.xml中配置一个常量:
<constant name=”struts.ui.theme” value=”simple” />
<s:checkboxlist name=”list” list=”{‘Java’,’.Net’,’RoR’,’PHP’}” value=”{‘Java’,’.Net’}”/>
<s:checkboxlist name=”map” list=”#{1:’瑜珈用品’,2:’户外用品’,3:’球类’,4:’自行车’}”
listKey=”key” listValue=”value” value=”{1,2}” />
<%
Person person1=new Person(1,”huhui”);
Person person2=new Person(2,”guang”);
List<Person> list=new ArrayList<Person>();
list.add(person1);
list.add(person2);
request.setAttribute(“persons”,list);
%>
<s:checkboxlist name=”beans” list”#request.persons” listKey=”personid” listValue=”name”/>
其中personid和name为Person的属性
4、表单标签select下拉选择框
<s:select name=”list” list=”{‘Java’,’.Net’}” value=”Java” />
<s:select name=”beans” list=”#request.persons” listKey=”personid” listValue=”name” />
<s:select name=”map” list=”#{1:’瑜珈用品’,2:’户外用品’,3:’球类’,4:’自行车’}”
listKey=”key” listValue=”value” value=”1” />
还有一种常用标签,因为作用较重要,所以我把它单独出来,就是:token标签。
使用token标签可以防止表单重复提交,下面有个简单示例:
1、在JSP页面编写一个提交表单,代码如下:
<body>
<s:form action="itcast" namespace="/test" method="post">
<table>
<tr>
<td>姓名:<s:textfield name="name"/></td>
<s:token></s:token>
<td><input type="submit" value="发送"/></td>
</tr>
</table>
</s:form>
</body>
2、创建一个Action类,代码如下:
public class PersonAction {
private String name;
public String execute(){
return "success";
}
……
}
3、配置struts.xml文件,代码如下:
<struts>
<package name="huhui" namespace="/test" extends="struts-default">
<action name="itcast" class="com.huhui.action.PersonAction">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="token"/>
<result name="invalid.token">/index.jsp</result>
<result>/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>
4、在JSP页面中显示name属性值,代码如下:
<body><s:property value="name"/></body>