首页 > 代码库 > Struts2标签小结
Struts2标签小结
前边总结Struts2的时候将标签这一部分给丢了,当时因为开发的时候很少使用,这里简单总结一下。先看一下Struts2标签的分类吧。然后分类总结一下即可。
由于控制标签用的比较多,所以放在了前边。好首先看一下控制标签吧。
一,控制标签,JSTL大家应该都使用过,其实Struts2的控制标签和那个特别像的,主要是对EL表达式满足不了的进行补充使用。这里简单看一下吧:
1, if……elseif……else,用来控制选择输出的标签;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>s:if标签测试</title>
</head>
<body>
<!-- 在Stack Context中定义一个age属性,其值为29 -->
<s:set name="age" value=http://www.mamicode.com/"29"/>>
2,append:用于将多个集合拼接成一个新的集合;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用s:append标签拼接集合和Map</title>
</head>
<body>
<!-- 使用append将List和Map集合拼接在一起
新集合实际上是Map集合,其名字为newList -->
<s:append var="newList">
<s:param value=http://www.mamicode.com/"#{‘Java‘:‘ljh‘,>
3,generator:是一个字符串解析器,用于将一个字符串解析成一个集合;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用s:generator生成集合</title>
</head>
<body>
<table border="1" width="240">
<!-- 使用generator标签将指定字符串解析成Iterator集合
在generator标签内,得到的List集合位于ValueStack顶端 -->
<s:generator val="‘Java
,C#,
C++‘" separator=",">
<!-- 没有指定迭代哪个集合,直接迭代ValueStack顶端的集合 -->
<s:iterator status="st">
<tr <s:if test="#st.odd">
style="background-color:#bbbbbb"</s:if>>
<td><s:property/></td>
</tr>
</s:iterator>
</s:generator>
</table>
</body>
</html>
4,iterator:是一个迭代器,用于将集合迭代输出,这个比较使用哈,前边都有,不再举例;
5,merge:也是用于将多个集合拼接成一个新的集合,但是与append不同。append是将集合依次排列进行拼接,merge是第一个集合的第一个,第二个集合的第一个……第一个集合的第二个,第二个集合的第二个……;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用s:merge标签迭代Map</title>
</head>
<body>
<s:merge id="newList">
<s:param value=http://www.mamicode.com/"#{‘Java‘:‘ljh‘,>
6,sort:这个标签用于将集合进行排序;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用s:sort对集合元素进行排序</title>
</head>
<body>
<!-- 定义一个Comparator实例 -->
<s:bean var="mycomparator" name="org.ljh.app.util.MyComparator"/>
<!-- 使用自定义的排序规则对目标集合进行排序 -->
<s:sort source="{‘Java‘
,‘C#‘
,‘C++‘
,‘Ajax‘
,‘XML‘}"
comparator="#mycomparator"
var="sortedList"/>
输出page范围的sortedList属性:<br/>
${pageScope.sortedList}
<table border="1" width="300">
<!-- 迭代page范围内的sortedList属性 -->
<s:iterator status="st" value=http://www.mamicode.com/"#attr.sortedList"> >
public class MyComparator implements Comparator
{
//决定两个元素大小的方法
public int compare(Object element1, Object element2)
{
//根据元素字符串长度来决定大小
return element1.toString().length()
- element2.toString().length();
}
}
7,subset:这个标签用于截取集合的部分元素,形成新的子集合。
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>使用s:subset标签截取集合元素</title> </head> <body> <!-- 定义一个Decider Bean --> <s:bean var="mydecider" name="org.ljh.app.util.MyDecider"/> <!-- 使用自定义的Decider实例来截取目标集合,生成子集 指定var属性,将生成的Itertor放入pageScope中 --> <s:subset source="{‘Java‘,‘C#‘ ,‘C++‘ ,‘Ajax‘ ,‘XML‘
}" decider="#mydecider"var="newList"/>直接输出page范围的newList属性:<br/>${pageScope.newList}<table border="1" width="240"><!-- 迭代page范围内的newList属性 --><s:iterator status="st" value=http://www.mamicode.com/"#attr.newList">style="background-color:#bbbbbb">