在struts2中,用的是s标记,先在jsp文件中引入标记:
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:a href=""></s:a>-----超链接,类似于html里的<a></a>
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>-----这3个标签一起使用,表示条件判断
<s:checkbox></s:checkbox>-----复选框
<s:checkboxlist list="#{1:'游戏',2:'打飞机',3:'看电影',4:'LOL'}" name="hobby" value="{4,3}"></s:checkboxlist>--复选框集合
<s:radio list="dogs" listKey="id" listValue="name" name="rdogid"></s:radio>-----单选按钮
<s:select list="dogs" listKey="id" listValue="name" name="dogid"></s:select><br> --下拉列表
<s:select list="#{1:'长沙',2:'湘潭',3:'邵阳'}" name="area" value="2"></s:select>
<s:iterator value="" var="">-----用于遍历集合
<s:iterator value="dogs" var="d" status="sta">
<s:property value="#d.name"/>--
<s:property value="#sta.index"/>--<!-- 索引 -->
<s:property value="#sta.count"/>--<!-- 个数 -->
<s:property value="#sta.even"/>--<!-- 是否是偶数行 -->
<s:property value="#sta.odd"/>--<!-- 是否是奇数行 -->
<s:property value="#sta.first"/>--<!-- 是否是第一行 -->
<s:property value="#sta.last"/><!-- 是否是最后一行 -->
<s:if test="#sta.even">偶数行</s:if><--常在隔行换色用到-->
<s:elseif test="#sta.odd">奇数行</s:elseif>
<br>
</s:iterator>
</s:iterator>
<s:set name="sex" value="'男'" ></s:set>-- 没有指定范围,放到ActionContext
<s:date name="receiveTime" format="yyyy-MM-dd HH:MM" />-----显示日期格式
<s:submit></s:submit>-----提交按钮
<s:reset></s:reset>-----重置按钮
<s:password></s:password>-----密码输入框
<s:table></s:table>-----表格
<s:token></s:token>-----拦截器
<s:tree></s:tree>-----树
<s:updownselect list=""></s:updownselect>-----多选择框
<s:treenode label=""></s:treenode>-----树的结构
<s:debug></s:debug>-----显示值栈里信息
<s:div></s:div>-----表示一个块,类似于html的<div></div>
<s:include value=""></s:include>-----包含一个输出,servlet或jsp页面
<s:bean name="com.accp.entity.Dog" var="dd"> 在页面创建一个实体类
<s:param name="id" value="200"></s:param>
<s:param name="name" value="'旺财'"></s:param>
</s:bean>
<s:property/>-----得到'value'的属性
标签不同情况下取值说明
取action中的普通属性:<s:property value="sex"/>
取action中的对象:<s:property value="user"/>
取action中的对象的属性:<s:property value="user.name"/>
调用action中对象的普通方法:<s:property value="user.sum(10,20)"/>
调用action中对象里面对象的属性:<s:property value="user.dog.name"/>
<hr/>
取action中静态的属性:<s:property value="@com.accp.action.OgnlAction@COUNTRY"/>
取user中的静态属性:<s:property value="@com.accp.entity.User@PI"/>
调用action中的静态方法:<s:property value="@com.accp.action.OgnlAction@hello()"/>
调用user中的静态方法:<s:property value="@com.accp.entity.User@sum('hello',' ff')"/>
调用java api中静态方法:<s:property value="@java.lang.Math@max(1,2)"/>
调用sysout打印方法:<s:property value="@java.lang.System@out.println('hello oyf')"/>
<hr>
取出list集合中的一个元素:<s:property value="list[1].name"/>
取出list集合中一个user对象的狗的名字:<s:property value="list[1].dog.name"/>
取出list集合中所有user的name:<s:property value="list.{name}"/>
取出list集合所有user的dog:<s:property value="list.{dog}"/>
取出list集合所有user的dog的名字:<s:property value="list.{dog.name}"/>
调用list集合中user的方法<s:property value="list[1].sum(1,2)"/>
调用list的方法:<s:property value="list.add(new com.accp.entity.User())"/>
调用list的方法:<s:property value="list.size()"/>
<hr/>
取出set集合中的一个元素:<s:property value="set.iterator().next().name"/>
取出set集合中某个user的dog的名字:<s:property value="set.iterator().next().dog.name"/>
取出set集合中所有user的name:<s:property value="set.{name}"/>
取出set集合中所有user的dog的name:<s:property value="set.{dog.name}"/>
调用set集合中user的方法:<s:property value="set.iterator().next().sum(10,20)"/>
调用set的方法:<s:property value="set.clear()"/>
调用set的方法:<s:property value="set.size()"/>
<hr>
取出map集合中的一个元素:<s:property value="map['u1'].name"/>
取出map集合中的一个元素:<s:property value="map.u1.name"/>
取出map集合所有的key:<s:property value="map.keys"/>
取出map集合所有的value:<s:property value="map.values"/>
<hr>
筛选集合中的数据(?:可以返回多个值):<s:property value="list.{?#this.id>1}.{id}"/>
筛选集合中的数据(^:返回一个值):<s:property value="list.{^#this.id>1}.{id}"/>
筛选集合中的数据($:可以返回多个值):<s:property value="list.{$#this.id>1}.{id}"/>
筛选集合中的数据(?:可以返回多个值):<s:property value="list.{?#this.id>1 and #this.name=='屌丝1'}.{id}"/>
筛选集合中的数据(?:可以返回多个值):<s:property value="list.{?#this.id>0 or #this.name=='屌丝2'}.{id}"/>