struts2(4)----------struts2的标签

时间:2022-11-03 14:59:40

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区中的数据