Struts2-控制标签

首先说明一点:使用Struts2标签首先应该在jsp代码中加入<%@taglib prefix="s" uri="/struts-tags" %>否则无法使用Struts2标签。

一:if/else if/else标签:

代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
  <s:set name="age" value="29"></s:set>
  <s:if test="#age>60">
      老年人
  </s:if>
  <s:elseif test="#age>35">
  中年
  </s:elseif>
  <s:else>
  青年
  </s:else>
</body>
</html>
<s:if>以及<s:elseif>标签中会加入 test属性,通过此属性判断ture或者 false。

二:iterator标签

代码如下:

 <table border="1" witth="300">
    <s:iterator value="{'mao','ge','VipMao'}" id="name" status="st">
      <tr <s:if test="#st.odd">style="background-color:red"</s:if>>
        <td><s:property value="name"/></td>
      </tr>
    </s:iterator>
  </table>
   <table border="1" width="300">
     <tr>
         <td>姓名</td>
         <td>学号</td>
       </tr>
     <s:iterator value="#{'mao':'14','ge':'16','VipMao':'17'}" id="score" status="st">
       <tr <s:if test="#st.odd"> style="background-color:yellow"</s:if>>
         <td><s:property value="key"/></td>
         <td><s:property value="value"/></td>
       </tr>
     </s:iterator>
   </table>

<s:iterator>为迭代标签,以上就对List和Map分别进行了迭代(Map需要通过#创建),迭代标签可以指定一下三个属性:

1:value:被迭代的集合,可选,如果不指定,则开始从ValueStack栈顶开始遍历

2:id:指定了集合里元素的ID。可选

3:status:可选,该属性指定了迭代时的Iterator实例,通过该实例可以判断迭代的元素是否为奇数,第一个等属性,如果指定了该属性,每次迭代都会有一个IteratorStatus实例,以status='st'为例,该实例包含常用方法如下:

(1):st.count()返回迭代了几个元素。

(2)st.index();返回迭代元素的索引。

(3)st.even()是否为偶数

(4)st.first()是否为第一个元素

(5)st.odd()是否为奇数

(6)st.last()是否为最后一个元素。

Struts2-控制标签_第1张图片

三:append标签

 <table border="1" width="300">
    <s:append var="newList1">
    <s:param value="#{'马洪昌':'14','毛忠良':'16','李照':'17'}"/>
    <s:param value="#{'洪文':'18','贺南南'}"/>
  </s:append>
    <tr>
      <td>序号</td>
      <td>姓名</td>
      <td>学号</td>
    </tr>
  <s:iterator value="#newList1" id="it1" status="st1">
    <tr <s:if test="#st1.odd">style="background-color:yellow"</s:if>>
      <td><s:property value="#st1.count"/></td>
      <td><s:property value="key"/>
      <td><s:property value="value"/></td>
    </tr>
  </s:iterator>
  </table>

通过<s:append>标签内的<s:param value="">标签添加属性。

Struts2-控制标签_第2张图片

四:generator标签:

五:merge标签:

与append标签不同,append标签为加载完一个集合后再凭借另一个,而merge是每个集合从第一个元素一起遍历。

六:subset

截取标签。

 <table boder="1" width="300">
  <s:subset source="{'mao','zhong','liang','zhu','lin'}" count="3" start="1">
     <s:iterator id="it" status="st">
      <tr <s:if test="#st.odd">style="background-color:yellow"</s:if>>
      <td><s:property value="#st.count"/></td>
      <td><s:property/></td>
      </tr>
    </s:iterator>
  </s:subset>
   </table>
从第2个元素开始截取,截取长度为3,因为在<subset>标签内,生成的子集合在ValueStack栈顶,因此我们可以直接使用<s:property/> 不指定 value 从栈顶获取子集合。

七:sort

package com.mao;

import java.util.Comparator;

public class MyComparator implements Comparator{

	@Override
	public int compare(Object a, Object b) {
		// TODO Auto-generated method stub
		return a.toString().length()-b.toString().length();
	}

}
先定义排序规则

然后

<!--   定义一个Comparator实例,实现类为 MyComparator,并且通过var将javabean放入StackContext中 -->
  <s:bean name="com.mao.MyComparator" var="mycomparator"/>
  <!-- 使用自定义排序规则对目标进行排序 -->
    <s:sort comparator="#mycomparator" source="{'mao','zhongz','liang','zhul','lin'}" var="sortList"/>
             输出page范围内的sortList属性:
     ${pageScope.sortList}
      <table border="1" width="300" >
    <!-- 迭代page范围内的sortList属性 -->
  <s:iterator status="st" id="it" value="#attr.sortList">
      <tr <s:if test="#st.odd">style="background-color:yellow"</s:if>>
      <td><s:property/></td>
      </tr>
       </s:iterator>>
    </table>

Struts2-控制标签_第3张图片




你可能感兴趣的:(javaee,struts2,控制标签)