sort标签用于将源标签集合按照指定的排序规则排序后置于ValueStack栈顶,供iterator标签迭代输出,如果指定了id属性,则将
得到的有序集合存放到pageContext属性中
sort标签属性说明
属性名称 功能描述
source 用于指定源集合对象,如果属性不存在,则默认从ValueStack栈顶提取一集合对象充当源集合
comparator 该属性为必填属性,用于指定Comparator(比较器实例)实现特定的排序规则
id 如果指定该属性,则将排序后的结果集合存放在pageContext对象中
package test.hephec;
import java.util.Comparator;
/*自定义比较器*/
public class MyComparator implements Comparator{
//实现compare方法,具体的排序规则在该方法中实现
//返回值大于0表示第一个元素大于第二个元素
//返回值等于0表示第一个元素等于第二个元素
//返回值小于0表示第一个元素小于第二个元素
public int compare(Object o1,Object 02){
//实现按单词的第一个字母的字典排序
String element1=(String)01;
String element2=(String)02;
return element1.charAt(0)-element2.charAt(0);
}
}
//sort标签应用标签
<%@page contentType="text/html;charset=gbk"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head><title>sort标签测试</title></head>
<body>
<h1>sort标签测试</h1>
<h3>使用sort标签与Comparator实例对源集合进行排序</h3>
<s:bean id="MyComparator" name="test.hephec.MyComparator"/>
<s:sort comparator="MyComparator" source="{‘hunan‘,‘fafa‘,‘fadfe‘,‘eqrwe‘}">
<s:iterator status="st">
<s:property value="#st.count"><s:property/><br/>
</s:iterator>
</s:sort>
<h3>将排序后的结果集合存放到pageContext对象中</h3>
<s:sort comparator="MyComparator" source="{‘hunan‘,‘fafa‘,‘fadfe‘,‘eqrwe‘}" id="sheng"/>
<%
java.util.Iterator it=(java.util.Iterator)pageContext.getAttribute("sheng");
int i=1;
while(it.hasNext()){
out.println((i++)+","+it.next()+"<br/>");
}
%>
</body>
</html>