详细的说明了struts2所有标签由web-tag.net整理版权属web-tag.net以及原作者。由于标签太多难做目录索引,如果你觉得有目录索引更好,请到下载CHM版本的Struts2标签详解,谢谢。aa标签创建一个HTML超链接,等价于HTML的ahref=....示范代码:s:ahref=login.action登陆/s:aaction使用action标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。action标签的属性:id:可选属性,该属性将会作为该Action的引用IDname:必填属性,指定该标签调用哪个Actionnamespace:可选,指定该标签调用的Action所在的namespace.executeResult:可选,指定是否要将Action的处理结果页面包含到本页面。默认是false,即不包含ignoreContextParams:可选,它指定该页面中的请求参数是否需要传入调用的Action、默认是false,即将本页的请求参数传入被调用的Action。下面是本示例应用中的Action类,包含连个处理逻辑。代码如下publicclassTagActionextedndsActionSupport{//封装用户请求参数的author属性privateStringauthor;//author的get和set的方法,省略……publicStringexecute()throwsException{returndone;}publicStringlogin()throwsException{ServletActionContext.getRequest().setAttribute(author,getAuthor());returndone;}}上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑Action。代码如下packagename=leeextends=struts-default!--定义第一个Action,使用lee.TagAction的execute方法作为处理逻辑--actionname=tag1class=lee.TagActionresultname=donesucc.jsp/result/action!--定义第二个Action,使用lee.TagAction的login方法作为处理逻辑--actionname=tag2class=lee.TagActionmethod=“login”resultname=doneloginSucc.jsp/result/action............../package上面配置文件将一个Action类定义成两个逻辑Action,可以在JSP页面中通过s:action.../标签来调用这两个逻辑Action,部分jsp代码如下:下面调用第一个Action,并将结果包含到本页面中。s:actionname=tage1executeResult=“true”/下面调用第二个Action,并将结果包含到本页面中。br阻止本页面请求参数传入Actionbrs:actionname=“tag2”executeResult=trueignoreContextParams=true//hr下面调用第二个Action,且不将结果包含到本页面中。brs:actionname=tag2executeResult=false/s:propertyvalue=#attr.author/上面页面中,通过指定executeResult属性来控制是否将处理结果包含到本页面中;还可以通过ignoreContextParams属性来决定是否将本页面的请求参数出入Action。actionerror这个标签负责输出错误信息到客户端,例子如下:Action代码如下:packagelee;importcom.opensymphony.xwork2.ActionSupport;publicclassDemoActionextendsActionSupport{@OverridepublicStringexecute(){addActionError(第一条错误消息!);addActionError(第二条错误消息!);returnSUCCESS;}}JSP页面代码如下:%@pagecontentType=text/html;charset=GBKlanguage=java%%@taglibprefix=suri=/struts-tags%htmlhead/headbodys:actionerror//body/htmlactionmessage这个标签负责输出提示信息到客户端,例子如下:Action代码如下:packagelee;importcom.opensymphony.xwork2.ActionSupport;publicclassDemoActionextendsActionSupport{@OverridepublicStringexecute(){addActionMessage(第一条普通消息!);addActionMessage(第二条普通消息!);returnSUCCESS;}}JSP页面代码如下:%@pagecontentType=text/html;charset=GBKlanguage=java%%@taglibprefix=suri=/struts-tags%htmlhead/headbodys:actionmessage//body/htmlappend来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。参数名字是否必须默认值可否使用表达式类型描述id否是String用来保存结果iterator的对象在valuecontext中的名字。例子Action类publicclassAppendIteratorTagActionextendsActionSupport{privateListmyList1;privateListmyList2;privateListmyList3;publicStringexecute()throwsException{myList1=newArrayList();myList1.add(1);myList1.add(2);myList1.add(3);myList2=newArrayList();myList2.add(a);myList2.add(b);myList2.add(c);myList3=newArrayList();myList3.add(A);myList3.add(B);myList3.add(C);returndone;}publicListgetMyList1(){returnmyList1;}publicListgetMyList2(){returnmyList2;}publicListgetMyList3(){returnmyList3;}标签使用s:appendid=myAppendIterators:paramvalue=%{myList1}/s:paramvalue=%{myList2}/s:paramvalue=%{myList3}//s:appends:iteratorvalue=%{#myAppendIterator}s:property//s:iteratorbeanbean标签用于创建一个JavaBean的实例。创建JavaBean实例时,可以在标签体内使用param.../标签为该JavaBean实例传入属性,要使用这个标签,需要为该JavaBean类提供对应的setter方法。如该JavaBean类提供了对应的getter方法,我们就可以访问对应的属性。bean标签的属性:name:必填,指定要实例化的JavaBean的实现类id:可选。如指定了该属性,则该Javabean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该id属性来访问该JavaBean实例。【!!注意:在bean标签内时,bean标签创建的JavaBean实例放在valuestack的栈顶,该标签结束,生成的子集被移出valuestack栈。除非指定了id属性】下面是个简单的JavaBeanpublicclassPerson{privateStringname;privateintage;//getter和setter方法省略……}在jsp页面中的代码:!--使用bean标签创建一个lee.Person类的实例--s:beanname=lee.Person!--使用Param标签为lee。Person类的实例传入参数--s:paramname=namevalue='yeeku'/s:paramname=agevalue=29/s:propertyvalue=name/brs:propertyvalue=age//s:bean带id属性的用法:s:beanname=lee.Personid=“p”!--使用Param标签为lee。Person类的实例传入参数--s:paramname=namevalue='yeeku'/s:paramname=agevalue=29//s:beans:propertyvalue=#p.name/brs:propertyvalue=#p.age/checkboxcheckbox标签输出一个HTML复选框,等价于HTML代码:inputtype=checkbox.../。代码1.s:checkboxlabel=性别name=user.sexvalue=truefieldValue=dddd/这里value的值是“假”值,fieldValue的值才是真值。当value=true表示这个复选框被选上。为false时不选上另外,它在向html转换后会多出一个隐藏域,很奇怪。上面的代码输出成html是这样的:代码1.inputtype=checkboxname=user.sexvalue=ddddchecked=checkedid=saveUser_user_sex/2.inputtype=hiddenname=__checkbox_user.sexvalue=dddd/labelfor=saveUser_user_sexclass=checkboxLabel性别/labelcheckboxlist复选框名称必需默认类型描述fieldValue是trueString指定在复选框选中时,实际提交的值复选框组,对应Action中的集合名称必需默认类型描述list是无CellectionMapEnumerationIteratorarray要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容listKey否无String指定集合对象中的哪个属性作为选项的valuelistValue否无String指定集合对象中的哪个属性作为选项的内容例子:checkboxlistTag.jsp%@pagecontentType=text/html;charset=G