struts2标签
parameters #parameters['foo']或#parameters.foo HttpServletRequest的getParameter("foo")
- if <s:if test="表达式">标签体</s:if>
- elseIf/elseif <s:elseif test="表达式">标签体</s:elseif>
- else <s:else>标签体</s:else>
- append 将多个集合拼接成一个新的集合;
- generator 字符串解析器,用于将一个字符串解析成一个集合;
- iterator 迭代器,用于将集合迭代输出;
- merge 多个集合拼接成一个新的集合。但与appernd的拼接方式有所不同。
- sort 对集合进行排序
- subset 截取集合的部分元素,形成新的子集;
- action 在JSP页面直接调用一个Action
- bean 创建一个JavaBean实例
- date 格式化输出一个日期
- debug 在页面生成一个调试链接
- i18n 指定国际化资源文件的baseName
- include 在JSP页面包含其他JSP或Servlet资源
- param 设置一个参数,通常用作bean标签、url标签的子标签
- push 将某个值放入ValueStack栈顶
- set 设置一个新变量,可指定变量范围
- text 输出国际化消息
- url 生成URL地址
- property 输出某个值,包括ValueStack、Stack Context和Action Context中的值
模板相关的通用属性如下:
1、 templateDir:指定该表单所用的模板文件目录。
2、 theme:指定该表单所用的主题
3、 template:指定该表单所用的模板
JavaScript相关的通用属性如下:
1、 onclick:指定鼠标在该标签生成的表单元素上单击时触发的JavaScript函数。
2、 ondbclick:指定鼠标在该标签生成的表单元素上双击时触发的JavaScript函数。
3、 onmousedown:指定鼠标在该标签生成的表单元素上按下时触发的JavaScript函数。
4、 onmouseup:指定鼠标在该标签生成的表单元素上松开时触发的JavaScript函数。
5、 onmouseover:指定鼠标在该标签生成的表单元素上悬停时触发的JavaScript函数。
6、 onmouseout:指定鼠标移除该标签生成的表单元素时触发的函数。
7、 onfocus:指定该标签生成的表单元素得到焦点时触发的函数。
8、 onblur:指定该标签生成的表单元素失去焦点时触发的函数。
9、 onkeypress:指定单击键盘上某个键时触发的函数。
10、onkeyup:指定松开键盘上某个键时触发的函数。
11、onkeydown:指定按下键盘上某个键时触发的函数。
12、onselect:对下拉列表项等可以选择表单的元素,指定选中该元素时触发的JavaScript函数。
13、 onchange:对于文本框等可以接受输入的表单元素,指定当值改变时触发的javaScript函数。
因为Html本身的限制,并不是每个Html元素都可以触发以上的所有函数。因此,上面的属性并不是对Struts2 的每个标签都有效。
Struts2还允许为表单元素设置提示,单鼠标在这些元素上停悬时,系统将出现提示。Struts2将这种特性称为Tooltip。
相关的通用属性如下:
1、 tooltip:设置此组件的Tooltip。
2、 tooltipIcon:设置Tooltip图标的URL路径。
3、 tooltipAboveMousePointer:是否在光标位置上显示Toopltip。也可以通过设置tooltipOffseY属性,设置Tooltip与光标位置的垂直位移。
4、 tooltipBgColor:设置Tooltip的背景色。
5、 tooltipBgImg:设置Tooltip的背景图片。
6、 tooltipBorderWidth:设置Tooltip边框的宽度
标签具体用法及示例可参考:
1, if……elseif……else,用来控制选择输出的标签
<span ><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>s:if标签测试</title> </head> <body> <!-- 在Stack Context中定义一个age属性,其值为29 --> <s:set name="age" value="29"/> <!-- 如果Stack Context中的age属性大于60 --> <s:if test="#age>60"> 老年人 </s:if> <!-- 如果Stack Context中的age属性大于35 --> <s:elseif test="#age>35"> 中年人 </s:elseif> <!-- 如果Stack Context中的age属性大于15 --> <s:elseif test="#age>15"> 青年人 </s:elseif> <s:else> 少年 </s:else> </body> </html></span>
2,append:用于将多个集合拼接成一个新的集合
1 <span ><html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>使用s:append标签拼接集合和Map</title> 4 </head> 5 <body> 6 <!-- 使用append将List和Map集合拼接在一起 7 新集合实际上是Map集合,其名字为newList --> 8 <s:append var="newList"> 9 <s:param value="#{'Java':'ljh', 10 'C#':'lsz'}" /> 11 <s:param value="#{'0629', 12 '0404'}" /> 13 </s:append> 14 <table border="1" width="280"> 15 <!-- 使用iterator迭代newList集合 --> 16 <s:iterator value="#newList" status="st"> 17 <tr <s:if test="#st.odd"> 18 </s:if>> 19 <td><s:property value="key"/></td> 20 <td><s:property value="value"/></td> 21 </tr> 22 </s:iterator> 23 </table> 24 </body> 25 </html> 26 </span>
1 <span style="font-size:18px;"><html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>使用s:generator生成集合</title> 4 </head> 5 <body> 6 <table border="1" width="240"> 7 <!-- 使用generator标签将指定字符串解析成Iterator集合 8 在generator标签内,得到的List集合位于ValueStack顶端 --> 9 <s:generator val="'Java 10 ,C#, 11 C++'" separator=","> 12 <!-- 没有指定迭代哪个集合,直接迭代ValueStack顶端的集合 --> 13 <s:iterator status="st"> 14 <tr <s:if test="#st.odd"> 15 style="background-color:#bbbbbb"</s:if>> 16 <td><s:property/></td> 17 </tr> 18 </s:iterator> 19 </s:generator> 20 </table> 21 </body> 22 </html></span>
1 <span ><html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>使用s:merge标签迭代Map</title> 4 </head> 5 <body> 6 <s:merge id="newList"> 7 <s:param value="#{'Java':'ljh', 8 'C#':'lsz'}" /> 9 <s:param value="#{'0629', 10 '0404'}" /> 11 </s:merge> 12 13 <table border="1" width="320"> 14 <s:iterator value="#newList" status="st"> 15 <tr <s:if test="#st.odd"></s:if>> 16 <td><s:property value="key"/></td> 17 <td><s:property value="value"/></td> 18 </tr> 19 </s:iterator> 20 </table> 21 </body> 22 </html></span>
1 <span ><html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>使用s:sort对集合元素进行排序</title> 4 </head> 5 <body> 6 <!-- 定义一个Comparator实例 --> 7 <s:bean var="mycomparator" name="org.ljh.app.util.MyComparator"/> 8 <!-- 使用自定义的排序规则对目标集合进行排序 --> 9 <s:sort source="{'Java' 10 ,'C#' 11 ,'C++' 12 ,'Ajax' 13 ,'XML'}" 14 comparator="#mycomparator" 15 var="sortedList"/> 16 输出page范围的sortedList属性:<br/> 17 ${pageScope.sortedList} 18 <table border="1" width="300"> 19 <!-- 迭代page范围内的sortedList属性 --> 20 <s:iterator status="st" value="#attr.sortedList"> 21 <tr <s:if test="#st.odd"> 22 </s:if>> 23 <td><s:property/></td> 24 </tr> 25 </s:iterator> 26 </table> 27 </body> 28 </html> 29 </span>
1 <span >public class MyComparator implements Comparator 2 { 3 //决定两个元素大小的方法 4 public int compare(Object element1, Object element2) 5 { 6 //根据元素字符串长度来决定大小 7 return element1.toString().length() 8 - element2.toString().length(); 9 } 10 }</span>
1 <span ><html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title>使用s:subset标签截取集合元素</title> 4 </head> 5 <body> 6 <!-- 定义一个Decider Bean --> 7 <s:bean var="mydecider" name="org.ljh.app.util.MyDecider"/> 8 <!-- 使用自定义的Decider实例来截取目标集合,生成子集 9 指定var属性,将生成的Itertor放入pageScope中 --> 10 <s:subset source="{<span >'Java'</span></span><pre name="code" class="html"><span > ,'C#' 11 ,'C++' 12 ,'Ajax' 13 ,'XML'</span></pre><span >}" decider="#mydecider"var="newList"/>直接输出page范围的newList属性:<br/>${pageScope.newList}<table border="1" width="240"><!-- 迭代page范围内的newList属性 --><s:iterator status="st" value="#attr.newList"><tr <s:if test="#st.odd"></s:if>><td><s:property/></td></tr></s:iterator></table></body></html></span> 14 15 <span >//用户自定义的Decider类,实现了SubsetIteratorFilter.Decider接口 16 public class MyDecider 17 implements SubsetIteratorFilter.Decider 18 { 19 //实现Decider接口必须实现的decide方法, 20 //该方法决定集合中的元素是否被选入子集 21 public boolean decide(Object element) throws Exception 22 { 23 String str = (String)element; 24 //如果集合元素(字符串)中包含Java EE子串,即可被选入子集 25 return str.indexOf("Java") > 0; 26 } 27 }</span>
action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被调用的Action的name和namespace.
如果指定了executeResult参数的属性值为true,该标签会把Action的处理结果(视图资源)包含到本页面中.
使用action标签指定属性有:
id: 可选属性,作为该Action的引用ID
name:必选属性,指定调用Action
namespace:可选属性,指定该标签调用Action所属namespace
executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.
<s:actionname="actionTag!default" executeResult="true"namespace="/generic/dataTag">
<paramname="username" value=" "/>给action属性复制
<paramname="email" value=" "/>
</s:action>
bean 实例化一个javabean 使用Param传入属性 (get/set)
name 实例化的javabean的实现类
var可选 指定则实例放入栈的上下文 允许用var直接使用
注意:bean标签内创建javabean实例位于栈顶,bean结束移除值栈,除非指定var则通过上下文访问
date格式化输出日期,指定日期与当天日期的时间差
formart 指定格式格式日期 注意:不欲nice同时指定,如果同时指定。则忽略formart
nice 是否指定日期与当前日期差值
name必填 格式化的日期值
var 对象放入值栈,在date结束可以通过该属性的值引用
<constanname="sruts.custom.i18n.resources"value="ApplicationResources" />
<s:datename="#date" formart="yyyy年MM月dd日"/>
debug标签:
用于辅助调试.在页面上生成超链接,可以查看值栈,和StackContext中所有信息
include:讲一个jsp或者servlet包含到当前页面
value 包含的JSP或Servlet。
可以指定多个param子标签传参
param标签:为其它标签提供参数
name设置的参数的名字 (set) value设置的参数的值
用法①<paramname="color">
②<paramname="color" value=" 'color' "/>
push:将某个值放到值栈的栈顶
value必填:指定放入值栈的栈值!但是只在push标签内,一旦超出,刚刚放入的对象立即被移除
用法:
<s:pushvalue="#session.user">
<s:propertyvalue="username">
<s:propertyvalue="sex">
<s:propertyvalue="emai">
</s:push>
set:用于将某个只放入指定范围内
定义一个新变量。将已有值放入新变量。并放入指定范围
value 指定一个表达式,计算的结果赋变量,如果没有指定value属性,默认将栈顶对象赋给变量。
var 指定该属性,改值放入到值栈中
scope指定新变量防止的范围,可选application,session request page action(默认) 如果指定为action放入request并放入action值栈
name变量名字
i18n text标签 支持国际化信息
i18n将资源包放入值栈 name资源属性名字 指定资源包的基名
text从资源包中获取信息 title 获取键为title的消息
通过i18n放入的资源包只能在标签体内访问
text可以单独使用。首先查找资源包的基名与调用action类名相同的资源包,意味着,可以在action类所在的包中创建与Action类名相同的的资源文件,可以嵌套param指定消息文本的参数,顺序对应参数索引顺序
<s:i18nname="AppliactionResources">
<s:textname="title"/> name资源属性名字 id指定属性,文本内容不会输出,而是保存在值栈中,在text结束后,可以通过属性的值来引用
</s:i18n>
url标签用于创建URL地址,定义param附加请求参数
action value 指定生成URL的Action和URL。前一个会附加.action。如果两个都没有则以当前地址为地址值
achor 可选 指定url的锚点
encode 可选 对指定参数进行编码 不支持cookie改写url支持session
escapeamp 是否将&转义为&
var 将链接值放入到值栈
includeContext是否将当前上下文包含在URL地址
includeParams是否包含请求参数,改属性值只能为none,getall
method 指定使用action的方法
namespace指定action所属的命名空间
portletmode指定portle模式
scheme指定url使用的协议
property标签,用于输出值栈中的对象的属性值
value指定要输出的对象属性 没有则输出栈顶
default 可选 value为null输出改值
escape 是否专一输出内容中的html
三,表单标签,这个就是form下的Struts2提供的标签,供界面显示用的,其实用的更少,一般情况下,我们都会拿easy-ui,dwz等一些专门做界面的框架进行替换。其实说简单一点就像HTML里边的各种标签,这里不再进行赘述,用的时候我们上网上查即可,这里提供网上的一些,大家可以看下:
Struts2常用表单标签http://blog.csdn.net/hahalzb/article/details/5905718
四,非表单标签,主要用于生成一些非表单的可视化元素,例如tab页面,输出HTML页面的树形结构等,当然也用来显示Action里封装的信息。简单介绍一下:
标签名 |
含义 |
actionerror |
如果Action实例的getActionErrors()方法返回不为null,则该标签负责输出该方法的返回的信息。 |
actionmessage |
和上边一样,用于返回GetActionMessage()的信息 |
component |
用于生成一个自定义组件。可以利用写好模版,主题等 |
fielderror |
如果Action实例存在表单域的类型转换错误,校验错误,该标签负责输出这些错误信息。 |
简单看一个componet标签:
<span ><html> <head> <title>使用s:component标签</title> </head> <body> <h3>使用s:component标签</h3> 使用默认主题(xhtml),默认主题目录(template)<br/> 使用mytemplate.jsp作为视图组件 <s:component template="mytemplate.jsp"> <s:param name="list" value="{'Java' ,'C#' ,C++'}"/> </s:component> <hr/> 使用自定义主题,自定义主题目录<br/> 使用myAnotherTemplate.jsp作为视图组件 <s:component templateDir="myTemplateDir" theme="myTheme" template="myAnotherTemplate.jsp"> <s:param name="list" value=" {'Java' ,'C#' ,C++'}"/> </s:component> </body> </html> </span>
以下内容原文出自:
http://blog.163.com/hzd_love/blog/static/131999881201082111852520/
一、逻辑控制标签
用于进行逻辑控制输出。主要分以下几类:
1)条件标签:用于执行基本的条件流转
<s:if>:拥有一个test属性,其表达式的值用来决定标签里内容是否显示。<s:if test="#request.username=='hzd'">欢迎hzd</s:if>
<s:elseif>:同上。
<s:else>
2)迭代标签:用于遍历集合(java.util.Collection)或者枚举值(java.util.Iterator)类型的对象,value属性表示集合或枚举对象,status属性表示当前循环的对象,在循环体内部可以引用该对象的属性
<s:iterator value="userList" status="user">
姓名:<s:property value="user.userName" />
年龄:<s:property value="user.age" />
</s:iterator>
3)组合标签:用于将多个枚举值对象进行叠加,形成一个新的枚举值列表
如将3个列表对象进行了组合,形成新的列表对象:
<s:append var="newIteratorList">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
输出:
<s:iterator value="%{#newIteratorList}">
<s:property />
</s:iterator>
4)分割标签:用于将一个字符串进行分隔,产生一个枚举值列表
下面的代码将分隔为3个字符串,然后循环输出
<s:generator val="%{'aaa,bbb,ccc'}">
<s:iterator>
<s:property />
</s:iterator>
</s:generator>
5)合并标签:用于将多个枚举值按照数组的索引位置进行合并
<s:merge var="newMergeList">
<s:param value="%{mylist1}">--设mylist1列表中有a,b,c三个元素
<s:param value="%{mylist2}">--设mylist2列表中有1,2,3三个元素
</s:merge>
合并后新的列表的元素及其顺序为:a,1,b,2,c,3
<s:iterator value="%{#newMergeList}">
<s:property />
</s:iterator>
6)排序标签:用于对一组枚举值进行排序,属性comparator指向一个继承自java.util.Comparator的比较器,该比较器可以是对应Action页面中的一个比较器变量,source指定要排序的列表对象
<s:sort comparator="myComparator" source="myList">
<s:iterator>
<s:property value="..."/>
</s:iterator>
</s:sort>
7)子集标签:用于取得一个枚举列表的子集,source用于指定检索的列表对象,start用于指定起始检索的索引位置,count用于指定检索的结果数量,decider属性必须是一个org.apache.struts2.util.SubsetIteratorFilter.Decider类的子类实例,用以指定检索的条件。例如在Action中提供了以下方法用来取得一个Decider对象:
public Decider getDecider()
{
return new Decider(){
public boolean decide(Object element) throws Exception{
int i=((Integer)element).intValue();
return (((i%2)==0)?true:false);
}
};
}
然后引用该对象筛选子集:
<s:subset source="myList" decider="decider">
</s:subset>
或者不使用Decider对象:
<s:subset source="myList" count="13" start="3">
</s:subset>
二、数据输出标签
数据输出标签用以输出页面中的元素、属性、隐含变量等,即包括静态文本的输出,也包括struts2集成的各种变量的输出。
1)链接标签:用于创建一个<a>标签,errorText用于显示错误信息,priInvokeJS表示该链接执行时的javascript提示函数,href表示跳转地址.
<s:a errorText="删除错误" preInvokeJS="confirm('确认删除?')" href="test.jsp">
<img src="/image/delete.gif" />
</s:a>
2)Action标签:可以直接调用Action类中的函数,前提是该Action类在struts.xml中有定义,name属性用于指向映射文件中配置的Action函数,executeResult属性表示是否执行结果集的跳转
<s:action name="LoginAction" executeResult="true" />--表示执行LoginAction的默认处理方法execute()
<s:action name="LoginAction!login" executeResult="true" />--表示执行LoginAction的处理方法login()
3)JavaBean标签:用于创建一个JavaBean对象,name表示JavaBean类全名,var表示变量的实例名,并可以包含<s:param>设置实例化输入参数
<s:bean name="xxx,xxx,xxx" var="xxx">
<s:param name="name" value="hzd" />--为该JavaBean的构造方法传递参数
</s:bean>
4)日期标签:用以输出一个格式化的日期对象,name表示要输出的对象,format表示输出的日期格式
<s:date name="user.birthday" format="dd/MM/yyyy" />
<s:date name="user.birthday" format="%{getText('some.i18n.key')}" />
<s:date name="user.birthday" />--默认格式
5)调用标签:用以输出页面的值栈调试信息,通常在进行程序调用时使用,便于查找JSP页面中的错误
6)引用资源文件标签:用于加载资源包到值栈,它可以允许<s:text>标签访问任何资源包的信息,而不只是当前action相关联的资源包。name属性用以指定资源包的类路径
如xxx.xxx.xxx.ApplicationMessages中定义了标签:HelloWord=欢迎您!
则可以这样引用:
<s:i18n name="xxx.xxx.xxx.ApplilcationMessages">
<s:text name="HelloWord" />
</s:i18n>
7)包含页面标签:用来包含一个Servlet的输出(Servlet或JSP页面),使用value属性指定包含页名称,可以使用<s:param>传递参数给子页
<s:include value="/test.jsp">
<s:param name="username">hzd</s:param>--参数username=hzd给test.jsp页面
</s:include>
8)传递参数标签:用来为其他标签提供参数,所以一般是嵌套在其它标签的内部,name属性用来指定参数名称,value(可选)属性用来指定参数值
<s:param name="username" value="hzd" />--这种方式的参数值会以String格式放入stack
<s:param name="username">hzd</s:param>--这种方式的参数值会以Object的格式放入stack
9)值栈标签:用以加入一个值到值栈中
<s:push value="user">
<s:property value="name" />--为user指定name属性
<s:property value="age" />--为user指定age属性
</s:push>
10)变量赋值标签:赋予变量一个特定范围内的值,name属性表示变量的名字,scope表示变量的作用域(application.session.request.page.action),value变量的值
<s:set>
11)国际化标签:用于输出国际化信息,name属性指定国际化资源文件中消息文本的key,可以与<s:i18n>标签结合使用
<s:text name="HelloWord" />--它会按照一定的顺序查找资源文件,直到找到定义HellowWord标签的资源文件为止
12)链接标签:用于创建一个URL链接,并可以通过<s:param>标签提供request参数
<s:url id="url" value="/test.jsp">
<s:param name="username">hzd</s:param>
</s:url>
13)属性标签:用以输出value属性的值,并拥有一个default属性,在value对象不存在时显示。escape属性为true,来输出原始的HTML文本
<s:property value="getText('some.key')">
三、HTML表单标签
HTML标签都拥有以下3个设置样式的属性。
templateDir:执行模板路径
theme:指定主题名称,可选值包括simple、xhtml、ajax等
template:指定模板名称
使用HTML表单标签会生成大量格式化的HTML代码,这些代码是由struts2的模板生成的,这样的好处是可以让我们的jsp代码十分简单,只需要配置使用不同的主题模板,就可以显示不同的页面样式。
struts2默认提供了5种主题(在此不做详细介绍):
simple主题:最简单的主题
XHTML主题:默认主题,使用常用的HTML技巧
CSS XHTML主题:使用CSS实现的XHTML主题
archive主题:使用文档生成主题
AJAX主题:基于AJAX实现的主题
通过在struts.properties文件中改变struts.ui.theme,struts.ui.templateDir,struts.ui.templateSuffix三个标签来自由切实可行换主题
由于HTML表单标签也不少,所以还是要用的时候在网上找吧...
四、HTML非表单标签
主要用来输出各种错误和消息。
1)错误标签:用以输出Action错误信息
<s:actionerror />
2)消息标签:用以输出Action普通消息
<s:atcionmessage />
3)字段错误标签:用以输出Action校验中某一个字段的错误信息或所有字段的错误信息
<s:fielderror />--输出所有字段的错误信息
<s:fielderror>
<s:param>username</s:param>--输出字段username的错误信息
<s:param>password</s:param>--输出字段password的错误信息
<s:fielderror>
4)DIV标签:用以输出一个<div>标签
五、AJAX标签
AJAX标签是struts2专门提供的一组进行AJAX操作的标签,在使用这些标签之前,需要在JSP页面中添加如下引用:
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
1)链接标签:用于创建一个<a>链接,并且在单击该链接时执行异步的请求,该标签的url属性必须使用<s:url/>标签进行设置,target属性指向要被更新的页面组件,showLoadingText属性决定是否显示文本,indicator表示异步请求时要显示的图片
使用form标签:
<s:div id="targetDiv">
<s:form action="LoginAction">
<sx:a targets="targetDiv" showLoadingText="false" indicator="loadingImage" />
</s:form>
</s:div>
使用url标签:
<s:div id="targetDiv">
<s:url id="ajaxTest" value="/LoginAction.action">
<sx:a targets="targetDiv" href="%{ajaxTest}" showLoadingText="false" indicator="loadingImage" />
</s:div>
2)自动完成标签:是一个组合框组件,在文本框中输入文本,能够给出一个下拉的提示列表。list属性用以指定一个自动提示检索的列表集合(可以是Action中的List类型的属性),autoComplete属性为true时表示进行自动提示
<sx:autocompleter name="test" list="{'上海','湖南',广东}" autoCompleter="true" />
3)自动事件绑定标签:该标签可以为多个对象的多个事件进行监听,并能够发送异步请求。src属性指定监听的对象源,events属性指定监听的事件类型(JavaScript事件),target属性指定异步返回内容填充的目标,indicator属性表示执行异步请求时显示的图片
<s:div id="targetDiv">
<s:form action="login">
<s:submit id="bin" />
<s:bind src="bin" events="onclick" targets="targetDiv" showLoadingText="false" indicator="%{getText('loadingImage')}" />
</s:form>
</s:div>
4)日期选择标签:用以弹出一个日期和时间的选择窗口,displayFormat属性指定要选择日期的格式,name表示当前组件的属性的对象,value表示默认值,label表示显示的文本
<sx:datetimepicker name="order.date" label="Order Date" displayFormat="yyyy-MM-dd" value="%{'2006-01-01'}" />
5)树标签:用以输出一个树形结构
<sx:tree>
6)Tab页标签:使用AJAX的方式显示多个Tab页
<s:tabbedpanel>
还可参考
http://blog.csdn.net/zxl315/article/details/2886456
http://www.cnblogs.com/langtianya/archive/2013/03/18/2965878.html