`
Javaloverlover
  • 浏览: 343878 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2标签详解(一)

阅读更多
struts2标签的功能非常强大。
1.if/elseif/else标签,用法跟普通的if,else语句一样。
<s:set name="age" value="30"></s:set>
<s:if test="#age>60">老年人</s:if>
<s:elseif test="#age>35">中年人</s:elseif>
<s:else>青少年</s:else><br/>

2.iterator标签,用与遍历List或Map。
<s:iterator value="{'aa','bb','cc'}" id="name" status="st">
	<s:property value="#st.count"/>
	<s:property value="#st.isEven()"/>
	<s:property value="name"/>
</s:iterator><br/>

status是IteratorStatus实例,用与获取获取当前迭代元素的一些信息
3.append标签,用于合并list,map,能对list和map混合拼接。
<s:append var="newList">
	<s:param value="{'aa','bb'}"></s:param>
	<s:param value="{'cc','dd'}"></s:param>
</s:append>
<s:iterator value="#newList" id="name" status="st">
	<s:property value="#st.count"/>
	<s:property value="name"/>
</s:iterator><br/>

4.merge标签,作用和append相似,但结果排序不同,此标签的排序是将每个集合的第一个元素先放进结果集合,然后是第二个元素,接着...
<s:merge var="newList">
	<s:param value="{'aa','bb'}"></s:param>
	<s:param value="{'cc','dd'}"></s:param>
</s:merge>
<s:iterator value="#newList" id="name" status="st">
	<s:property value="#st.count"/>
	<s:property value="name"/>
</s:iterator><br/>

结果:1 aa 2 cc 3 bb 4 dd
5.generator标签,用于字符串的分隔,与String的split()方法相似。
<s:generator separator="," val="%{'java,c#,php,.net,asp,android'}" var="language">
<s:iterator>
	<s:property/>
</s:iterator>
</s:generator><br/>

6.subset标签,用于筛选集合元素。
<s:subset source="{'aa','bb','cc','dd','ee','ff'}" start="1" count="3">
	<s:iterator>
		<s:property/>
	</s:iterator>
</s:subset><br/>

除此之外,用户还能定义各种筛选规则。
package com.randy.com.util;

import org.apache.struts2.util.SubsetIteratorFilter.Decider;

public class MyDecider implements Decider {

	@Override
	public boolean decide(Object element) throws Exception {
		String str = (String)element;
		return str.indexOf("java") >= 0;
	}

}


<s:bean name="com.randy.com.util.MyDecider" var="mydecider"></s:bean>
<s:subset source="{'javase','javaee','javame','android'}" decider="#mydecider" var="newList">
</s:subset>
<s:iterator value="#attr.newList">
	<s:property/>
</s:iterator>

7.sort标签,用于对集合元素进行排序,排序规则必须自己制定。
<s:bean name="com.randy.com.util.MyComparator" var="mycomparator"></s:bean>
<s:sort comparator="#mycomparator" source="{'a','aaaa','aa','bbd','n'}" var="sortList"></s:sort>
<s:iterator value="#attr.sortList">
	<s:property/>
</s:iterator><br/>

Mycomparator类
package com,randy.com.util;

import java.util.Comparator;

public class MyComparator implements Comparator {

	@Override
	public int compare(Object ele1, Object ele2) {
		return ele1.toString().length() - ele2.toString().length();
	}

}


   交流群:132607763 若满了,请加:251207741
分享到:
评论
1 楼 wnczwl369 2013-05-17  
good,用此方法排序了hibernate中的Set类型的属性。

相关推荐

Global site tag (gtag.js) - Google Analytics