struts2的标签

来源:互联网 发布:360软件客服电话 编辑:程序博客网 时间:2024/06/14 00:52

这里只展示了struts2标签中的Control Tags,其余的标签可以参考struts2包里的docs/WW/tag-reference.html

1.if,else,elseif

public class TestTagction extends ActionSupport{private int age;public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String execute() throws Exception {System.out.println("TestTagction execute....");System.out.println("age:"+this.age);return SUCCESS;}}

<h1>if,else,elseif</h1>age:${age}<br/><s:if test="age>20&&age<30">年轻人</s:if><s:elseif test="age>30&&age<60">中年人</s:elseif><s:else>老年人</s:else>
在浏览器中输入:项目名?age=XXX,XXX为你想输入的数字

2.append(把其它集合添加到var的集合中,添加顺序为以集合为顺序,只对List有效,对Set无效),iterator(迭代,value为迭代的集合,var为key)
public class TestTagction extends ActionSupport{ private List list1; private List list2; private List list3; private Set set1; private Set set2; private Set set3; public List getList1() {return list1;}public List getList2() {return list2;}public List getList3() {return list3;}public Set getSet1() {return set1;}public Set getSet2() {return set2;}public Set getSet3() {return set3;}@Overridepublic String execute() throws Exception {System.out.println("TestTagction execute....");this.list1 = new ArrayList<>();this.list1.add("1");this.list1.add("2");this.list1.add("3");this.list2 = new ArrayList<>();this.list2.add("a");this.list2.add("b");this.list2.add("c");this.list3 = new ArrayList<>();this.list3.add("A");this.list3.add("B");this.list3.add("C");this.set1 = new HashSet<>();this.set1.add("1");this.set1.add("2");this.set1.add("3");this.set2 = new HashSet<>();this.set2.add("a");this.set2.add("b");this.set2.add("c");this.set3 = new HashSet<>();this.set3.add("A");this.set3.add("B");this.set3.add("C");return SUCCESS;}}


<h1>append(把其它集合添加到var的集合中,添加顺序为以集合为顺序,只对List有效,对Set无效),iterator(迭代,value为迭代的集合,var为key)</h1><s:append var="newList"><s:param value="list1"/><s:param value="list2"/><s:param value="list3"/></s:append>newList:${requestScope.newList}<br/>List<s:iterator value="newList"><s:property/>,</s:iterator><br/>Set<s:append var="newSet"><s:param value="set1"/><s:param value="set2"/><s:param value="set3"/></s:append><s:iterator value="newSet"><s:property/>,</s:iterator>


3.merge(把其它集合添加到var的集合中,添加顺序为把每个集合的同一序号的添加进来,再添加每个集合的下一序号,只对List有效,对Set无效)

Action同上

<h1>merge(把其它集合添加到var的集合中,添加顺序为把每个集合的同一序号的添加进来,再添加每个集合的下一序号,只对List有效,对Set无效)</h1><s:merge var="newList1"><s:param value="list1"/><s:param value="list2"/><s:param value="list3"/>></s:merge>List<s:iterator value="newList1"><s:property/>,</s:iterator><br/><s:merge var="newSet"><s:param value="set1"/><s:param value="set2"/><s:param value="set3"/></s:merge>Set<s:iterator value="newSet"><s:property/>,</s:iterator>

4.sort(排序,comparator为排序器,source为需要排序的集合)

排序器comparator

import java.util.Comparator;import com.zucc.model.User;public class UserAgeComparator implements Comparator<User>{@Overridepublic int compare(User user1, User user2) {return user1.getAge()-user2.getAge();}}

构造函数

package com.zucc.model;import java.util.Date;public class User {private int id;private String name;private int age;private Date birthday;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}}
Action
package com.zucc.action;import java.util.Calendar;import java.util.List;import org.apache.struts2.util.SubsetIteratorFilter.Decider;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.util.Element;import com.zucc.comparator.UserAgeComparator;import com.zucc.model.User;public class TestTagction extends ActionSupport{  private List<User> userList;  private UserAgeComparator userAgeComparator; public UserAgeComparator getUserAgeComparator() {return userAgeComparator;}@Overridepublic String execute() throws Exception {System.out.println("TestTagction execute....");this.userList = new ArrayList<>();Calendar calendar = Calendar.getInstance();//获取当前时间for(int i=0;i<10;i++){User u = new User();u.setId(i+1);u.setName("asd_"+(i+1));u.setAge((int)(Math.random()*13+18));calendar.set(1980, 1,1);//指定时间为1980.1.1int month = (int)(Math.random()*121);//生成随机月份calendar.add(Calendar.MONTH, month);//指定时间加上随机生成的月份,产生随机日期u.setBirthday(calendar.getTime());userList.add(u);}this.userAgeComparator = new UserAgeComparator();return SUCCESS;}}

<h1>sort(排序,comparator为排序器,source为需要排序的集合)</h1>排序前:<table border="1" cellpadding="0" cellspacing="0"><tr><th>ID</th><th>Name</th><th>Age</th><th>Birthday</th></tr><s:iterator value="userList" var="u"><tr><td><s:property value="#u.id"/></td><!--一定要有#--><td><s:property value="#u.name"/></td><td><s:property value="#u.age"/></td><td><s:date name="#u.birthday" format="yyyy-MM-dd HH:mm:ss"/></td></tr></s:iterator></table>排序后:<s:sort comparator="userAgeComparator" source="userList"><table border="1" cellpadding="0" cellspacing="0"><tr><th>ID</th><th>Name</th><th>Age</th><th>Birthday</th></tr><s:iterator var="u"><tr><td><s:property value="#u.id"/></td><td><s:property value="#u.name"/></td><td><s:property value="#u.age"/></td><td><s:property value="#u.birthday"/></td></tr></s:iterator></table>


5.subset(截取集合,decider为截取的规则,source为截取的集合,count要截取的长度,start从哪个下标开始截取)

package com.zucc.action;import java.util.Calendar;import java.util.List;import org.apache.struts2.util.SubsetIteratorFilter.Decider;import com.opensymphony.xwork2.ActionSupport;import com.zucc.model.User;public class TestTagction extends ActionSupport{ private List<User> userList;  private Decider userDecider = new Decider() {   //截取器@Overridepublic boolean decide(Object element) throws Exception {// TODO Auto-generated method stubboolean flag = false;if(element instanceof User){User u = (User)element;flag=u.getAge()%2==0;}return flag;}}; public List<User> getUserList() {return userList;}public Decider getUserDecider() {return userDecider;}@Overridepublic String execute() throws Exception {System.out.println("TestTagction execute....");Calendar calendar = Calendar.getInstance();//获取当前时间for(int i=0;i<10;i++){User u = new User();u.setId(i+1);u.setName("asd_"+(i+1));u.setAge((int)(Math.random()*13+18));calendar.set(1980, 1,1);//指定时间为1980.1.1int month = (int)(Math.random()*121);//生成随机月份calendar.add(Calendar.MONTH, month);//指定时间加上随机生成的月份,产生随机日期u.setBirthday(calendar.getTime());userList.add(u);}return SUCCESS;}}

<h1>subset(截取集合,decider为截取的规则,source为截取的集合,count要截取的长度,start从哪个下标开始截取)</h1><s:subset source="userList" count="2" start="2"><s:iterator><s:property value="name"/><br/></s:iterator></s:subset><s:subset source="userList" decider="userDecider"><s:iterator><s:property value="name"/>,<s:property value="age"/><br/></s:iterator>








0 0
原创粉丝点击