Struts2标签库讲解要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:%@taglibprefix=suri=/struts-tags%struts2的标签共分为五大类:一、逻辑控制标签用于进行逻辑控制输出。主要分以下几类:1)条件标签:用于执行基本的条件流转s:if:拥有一个test属性,其表达式的值用来决定标签里内容是否显示。s:iftest=#request.username=='hzd'欢迎hzd/s:ifs:elseiftest=#request.username=='hzd2'123/s:seleifs:elseabc/s:else2)迭代标签:用于遍历集合(java.util.Collection)或者枚举值(java.util.Iterator)类型的对象,value属性表示集合或枚举对象,status属性表示当前循环的对象,在循环体内部可以引用该对象的属性s:iteratorvalue=userListstatus=user姓名:s:propertyvalue=user.userName/年龄:s:propertyvalue=user.age//s:iterator3)组合标签:用于将多个枚举值对象进行叠加,形成一个新的枚举值列表如将3个列表对象进行了组合,形成新的列表对象:s:appendvar=newIteratorLists:paramvalue=%{myList1}/s:paramvalue=%{myList2}/s:paramvalue=%{myList3}//s:append输出:s:iteratorvalue=%{#newIteratorList}s:property//s:iterator4)分割标签:用于将一个字符串进行分隔,产生一个枚举值列表下面的代码将分隔为3个字符串,然后循环输出s:generatorval=%{'aaa,bbb,ccc'}s:iterators:property//s:iterator/s:generator5)合并标签:用于将多个枚举值按照数组的索引位置进行合并s:mergevar=newMergeLists:paramvalue=%{mylist1}--设mylist1列表中有a,b,c三个元素s:paramvalue=%{mylist2}--设mylist2列表中有1,2,3三个元素/s:merge合并后新的列表的元素及其顺序为:a,1,b,2,c,3s:iteratorvalue=%{#newMergeList}s:property//s:iterator6)排序标签:用于对一组枚举值进行排序,属性comparator指向一个继承自java.util.Comparator的比较器,该比较器可以是对应Action页面中的一个比较器变量,source指定要排序的列表对象s:sortcomparator=myComparatorsource=myLists:iterators:propertyvalue=...//s:iterator/s:sort7)子集标签:用于取得一个枚举列表的子集,source用于指定检索的列表对象,start用于指定起始检索的索引位置,count用于指定检索的结果数量,decider属性必须是一个org.apache.struts2.util.SubsetIteratorFilter.Decider类的子类实例,用以指定检索的条件。例如在Action中提供了以下方法用来取得一个Decider对象:publicDecidergetDecider(){returnnewDecider(){publicbooleandecide(Objectelement)throwsException{inti=((Integer)element).intValue();return(((i%2)==0)?true:false);}};}然后引用该对象筛选子集:s:subsetsource=myListdecider=decider/s:subset或者不使用Decider对象:s:subsetsource=myListcount=13start=3/s:subset二、数据输出标签数据输出标签用以输出页面中的元素、属性、隐含变量等,即包括静态文本的输出,也包括struts2集成的各种变量的输出。1)链接标签:用于创建一个a标签,errorText用于显示错误信息,priInvokeJS表示该链接执行时的javascript提示函数,href表示跳转地址.s:aerrorText=删除错误preInvokeJS=confirm('确认删除?')href=test.jspimgsrc=/image/delete.gif//s:a2)Action标签:可以直接调用Action类中的函数,前提是该Action类在struts.xml中有定义,name属性用于指向映射文件中配置的Action函数,executeResult属性表示是否执行结果集的跳转s:actionname=LoginActionexecuteResult=true/--表示执行LoginAction的默认处理方法execute()s:actionname=LoginAction!loginexecuteResult=true/--表示执行LoginAction的处理方法login()3)JavaBean标签:用于创建一个JavaBean对象,name表示JavaBean类全名,var表示变量的实例名,并可以包含s:param设置实例化输入参数s:beanname=xxx,xxx,xxxvar=xxxs:paramname=namevalue=hzd/--为该JavaBean的构造方法传递参数/s:bean4)日期标签:用以输出一个格式化的日期对象,name表示要输出的对象,format表示输出的日期格式s:datename=user.birthdayformat=dd/MM/yyyy/s:datename=user.birthdayformat=%{getText('some.i18n.key')}/s:datename=user.birthday/--默认格式5)调用标签:用以输出页面的值栈调试信息,通常在进行程序调用时使用,便于查找JSP页面中的错误6)引用资源文件标签:用于加载资源包到值栈,它可以允许s:text标签访问任何资源包的信息,而不只是当前action相关联的资源包。name属性用以指定资源包的类路径如xxx.xxx.xxx.ApplicationMessages中定义了标签:HelloWord=欢迎您!则可以这样引用:s:i18nname=xxx.xxx.xxx.ApplilcationMessagess:textname=HelloWord//s:i18n7)包含页面标签:用来包含一个Servlet的输出(Servlet或JSP页面),使用value属性指定包含页名称,可以使用s:param传递参数给子页s:includevalue=/test.jsps:paramname=usernamehzd/s:param--参数username=hzd给test.jsp页面/s:include8)传递参数标签:用来为其他标签提供参数,所以一般是嵌套在其它标签的内部,name属性用来指定参数名称,value(可选)属性用来指定参数值s:paramname=usernamevalue=hzd/--这种方式的参数值会以String格式放入stacks:paramname=usernamehzd/s:param--这种方式的参数值会以Object的格式放入stack9)值栈标签:用以加入一个值到值栈中s:pushvalue=users:propertyvalue=name/--为user指定name属性s:propertyvalue=age/--为user指定age属性/s:push10)变量赋值标签:赋予变量一个特定范围内的值,name属性表示变量的名字,scope表示变量的作用域(application.session.request.page.action),value变量的值s:sets:setname=testvalue='测试'/s:propertyvalue=#test/11)国际化标签:用于输出国际化信息,name属性指定国际化资源文件中消息文本的key,可以与s:i18n标签结合使用s:textname=HelloWord/--它会按照一定的顺序查找资源文件,直到找到定义HellowWord标签的资源文件为止12)链接标签:用于创建一个URL链接,并可以通过s:param标签提供request参数s:urlid=urlvalue=/test.jsps:paramname=usernamehzd/s:param/s:url13)属性标签:用以输出value属性的值,并拥有一个default属性,在value对象不存在时显示。escape属性为true,来输出原始的HTML文本s:propertyvalue=getText('some.key')三、HTML表单标签HTML标签都拥有以下3个设置样式的属性。templateDir:执行模板路径theme:指定主题名称,可选值包括simple、xhtml、ajax等template:指定模板名称使用HTML表单标签会生成大量格式化的HTML代码,这些代码是由struts2的模板生成的,这样的好处是可以让我们的jsp代码十分简单,只需要配置使用不同的主题模板,就可以显示不同的页面样式。struts2默认提供了5种主题(在此不做详细介绍):simple主题:最简单的主题XHTML主题:默认主题,使用常用的HTML技巧CSSXHTML主题:使用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:fielderrors:paramusername/s:param--输出字段username的错误信息s:parampassword/s:param--输出字段password的错误信息s:fielderror4)DIV标签:用以输出一个div标签五、AJAX标签AJAX标签是struts2专门提供的一组进行AJAX操作的标签,在使用这些标签之前,需要在JSP页面中添加如下引用:%@taglibprefix=sxuri=/struts-dojo-tags%1)链接标签:用于创建一个a链接,并且在单击该链接时执行异步的请求,该标签的url属性必须使用s:url/标签进行设置,target属性指向要被更新的页面组件,showLoadingText属性决定是否显示文本,indicator表示异步请求时要显示的图片使