1、作用:用来jsp页面中显示数据(学习时,类比jstl标签)
2、使用:引入标签库<%@taglib prifix="s" uri="/stuts-tags"%>
如:studentAction.java
package com.bz.sqc.action; import com.opensymphony.xwork2.Action; import com.pengsai.entity.Student; import com.pengsai.service.StudentService; import com.pengsai.service.impl.StudentServiceImpl; public class StudentAction { StudentService stus = new StudentServiceImpl(); //查看 public String selectAll(){ try{ list = stus.selectAll(); return Action.SUCCESS; }catch(Exception e){ return Action.ERROR; } } private List<Student> list ; public List<Student> getList() { return list; } public void setList(List<Student> list) { this.list = list; } }
2.1)展示单个数据<s:property value="OGNL表达式">
<table border="1px solid black" cellpadding="0px" cellspacing="0px"> <tr><th>id</th><th>姓名</th><th>性别</th><th>生日</th><th>星座</th><th>属相</th><th>更新</th><th>删除</th></tr> <s:iterator value="list"> <tr> <td><s:property value="id" /></td> <td><s:property value="name" /></td> <td><s:property value="sex" /></td> <td><s:date name="birthday" format="yyyy-MM-dd"/></td> <td><s:property value="xingzuo" /></td> <td><s:property value="shuxiang" /></td> <td><a href="<s:url value="/student/selectById" />?id=<s:property value="id" />">更新</a></td> <td><a href="<s:url value="/student/deleteById" />?id=<s:property value="id" />">删除</a></td> </tr> </s:iterator> </table>
2.2)有条件展示数据<s:if test="OGNL表达式" ></s:if> <s:elseif test=""><s:elstif> <s:else></else>
2.3)展示多个数据<s:iterator value="OGNL表达式"><s:iterator>
注意:1)使用struts的迭代标签,每次迭代1次,取出1个集合元素,放入root中
2)如果集合元素是String、基本类型或包装类型,则输出集合元素内容,使用<s:property/>
3)遍历map集合时,使用<s:property value="key" />输出键名,<s:property vakue="key.value">输出值
补充:begin--开始索引(从1开始)
end--结束索引,step--步长
status--迭代状态,j结果放在contextMap中,在ONGL使用时必须
<s:property value="#s.index"> 循环下标(从0开始)
<s:property value="#s.count"> 循环次数(从1开始)
<s:property value="#s.even"> 是否为奇数(是为true)
<s:property value="#s.odd"> 是否为偶数(是为true)
<s:iterator begin="1" end="10" status="i"> <s:property value="#i.count"/> //通常做分页处理 </s:iterator>
2.4)格式化日期标签<s:date name="OGNL表达式" format="yyyy-MM-dd">
2.5)动态获取资源标签<s:url value="/子目录/xx.jsp">
2.6)通过jsp页面加载发送请求标签<s:action name="" namespace="" executeResult="" var=""/>
<s:action>常用于做回显数据(下拉菜单的回显非常方便):
<s:action name="selectByUserId" namespace="/address" executeResult="false" var="addresses"/>
name:action中方法的名字,即xml中配置的method
namespace:xml中配置的工作空间namespace配置
executeResult:,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.
var:取出的数据放在ContextMap中,使用时#address.[action中定义的传值变量].属性值
例如:电商网站地址回显 <s:action name="selectByUserId" namespace="/address" executeResult="false" var="addresses"/> <ul class="shdz_con"> <p>▪ 收货地址</p> <input type="hidden" name="addreddid" value="<s:property value="#addresses.adds.id"/>" /> <li><label><strong>*</strong>收 货 人:</label><input type="text" name="ship_man" value="<s:property value="#addresses.adds.receiveperson"/>" /><span id="spn_ship_man" class="hint new_tip" style="display: block;">请填写收货人姓名</span></li> <li><label><strong>*</strong>详细地址:</label><input type="text" name="ship_man" value="<s:property value="#addresses.adds.detailaddress"/>"/></li> <li><label><strong>*</strong>邮政编码:</label><input type="text" name="ship_man" value="<s:property value="#addresses.adds.zipcode" />" /></li> <li><label><strong>*</strong>手 机:</label><input type="text" name="ship_man" value="<s:property value="#addresses.adds.phone"/>" /><label></li> </ul>2.7)<s:debug>标签,帮助查看root和contextMap区中的数据