struts2标签详解

上传人:桔**** 文档编号:519 上传时间:2016-11-03 格式:DOC 页数:49 大小:496.50KB
返回 下载 相关 举报
struts2标签详解_第1页
第1页 / 共49页
struts2标签详解_第2页
第2页 / 共49页
struts2标签详解_第3页
第3页 / 共49页
struts2标签详解_第4页
第4页 / 共49页
struts2标签详解_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《struts2标签详解》由会员分享,可在线阅读,更多相关《struts2标签详解(49页珍藏版)》请在金锄头文库上搜索。

1、Struts2 标签详解详细的说明了struts2所有标签由web-整理版权属web- 以及 原作者。由于标签太多难做目录索引,如果你觉得有目录索引更好,请到http:/ 下载CHM版本的Struts2标签详解,谢谢。aa标签创建一个HTML超链接,等价于HTML 的a href=.示范代码:登陆action使用action标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。如果指定 了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。acti

2、on标签的属性:id:可选属性,该属性将会作为该Action的引用IDname:必填属性,指定该标签调用哪个Actionnamespace:可选,指定该标签调用的Action所在的namespace.executeResult:可选,指定是否要将Action的处理结果页面包含到本页面。默认是false,即不包含ignoreContextParams:可选,它指定该页面中的请求参数是否需要传入调用的Action、默认是false,即将本页的请求参数传入被调用的Action。下面是本示例应用中的Action类,包含连个处理逻辑。代码如下public class TagAction extednds

3、 ActionSupport/封装用户请求参数的author属性private String author;/author的get和set的方法,省略public String execute() throws Exceptionreturn done; public String login() throws ExceptionServletActionContext.getRequest().setAttribute(author,getAuthor();return done;上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action

4、类映射成两个逻辑Action。代码如下succ.jsp loginSucc.jsp .上面配置文件将一个Action类定义成两个逻辑Action,可以在JSP页面中通过标签来调用这两个逻辑Action,部分jsp代码如下: 下面调用第一个Action,并将结果包含到本页面中。下面调用第二个Action,并将结果包含到本页面中。阻止本页面请求参数传入Action 下面调用第二个Action,且不将结果包含到本页面中。上面页面中,通过指定executeResult属性来控制是否将处理结果包含到本页面中;还可以通过ignoreContextParams属性来决定是否将本页面的请求参数出入Action

5、。actionerror这个标签负责输出错误信息到客户端,例子如下:Action代码如下:package lee;import com.opensymphony.xwork2.ActionSupport;public class DemoAction extends ActionSupportOverridepublic String execute() addActionError(第一条错误消息!); addActionError(第二条错误消息!); return SUCCESS;JSP页面代码如下:actionmessage这个标签负责输出提示信息到客户端,例子如下:Action代码如

6、下:package lee;import com.opensymphony.xwork2.ActionSupport;public class DemoAction extends ActionSupportOverridepublic String execute() addActionMessage(第一条普通消息!); addActionMessage(第二条普通消息!); return SUCCESS;JSP页面代码如下:append来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。参数名字是否必须默认值可否使用表达式类型描述id否是String

7、用来保存结果iterator的对象在value context中的名字。例子Action类public class AppendIteratorTagAction extends ActionSupport private List myList1;private List myList2;private List myList3;public String execute() throws Exception myList1 = new ArrayList(); myList1.add(1); myList1.add(2); myList1.add(3); myList2 = new Arr

8、ayList(); myList2.add(a); myList2.add(b); myList2.add(c); myList3 = new ArrayList(); myList3.add(A); myList3.add(B); myList3.add(C); return done;public List getMyList1() return myList1; public List getMyList2() return myList2; public List getMyList3() return myList3; 标签使用 beanbean标签用于创建一个JavaBean的实例

9、。创建JavaBean实例时,可以在标签体内使用标签为该JavaBean实例 传入属性,要使用这个标签,需要为该JavaBean类提供对应的setter方法。如该JavaBean类提供了对应的getter方法,我们就可以访 问对应的属性。bean标签的属性:name:必填,指定要实例化的JavaBean的实现类id:可选。如指定了该属性,则该Javabean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该id属性来访问该JavaBean实例。【!注意:在bean标签内时,bean标签创建的JavaBean实例放在valuestack的栈顶,该标签结束,生成

10、的子集被移出valuestack栈。除非指定了id属性】下面是个简单的JavaBeanpublic class Person private String name; private int age; /getter和setter方法省略 在jsp页面中的代码:带id属性的用法:checkboxcheckbox标签输出一个HTML复选框,等价于HTML代码:。 代码1. 这里value的值是“假”值,fieldValue的值才是真值。当value=true表示这个复选框被选上。为false时不选上另外,它在向html转换后会多出一个隐藏域,很奇怪。上面的代码输出成html是这样的:代码1. 2

11、. 性别 checkboxlist复选框名称必需默认类型描述fieldValue是trueString指定在复选框选中时,实际提交的值复选框组,对应Action中的集合名称必需默认类型描述list是无Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容listKey否无String指定集合对象中的哪个属性作为选项的valuelistValue否无String指定集合对象中的哪个属性作为选项的内容例子:checkboxlis

12、tTag.jsp comboboxcombobox标签生成一个单行文本框和下拉列表框的结合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name属性,也就不会产生请求参数。使用该标签时,需要指定一个list属性,该list属性指定的集合将用于生成列表框。例子如下:使用s:combobox生成下拉输入框使用s:combobox生成下拉输入框通过访问上面的JSP页面,我们可以看到上面的文本框,用户可以自行输入,可也以选择下面的checkbox中的内容来进行输入。需要注意的是,此时的下拉列表仅仅是用于辅助输入的,并没有任何实际意义,因此

13、不能指定它的listKey和listValue属性。conponentconponent标签用于使用自定义标签,因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性:theme:自定义组件所使用的主题,默认使用xhtml主题。templateDir:指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。template:指定自定义组件所使用的模板。此外,还可以component标签中使用param标签来注入参数的值。例子如下:使用s:component标签使用s:component标签使用自定义主题,自定义主题目录从Web应

14、用根路径下加载模板,使用ftl模板。使用自定义主题,自定义主题目录从Web应用根路径下加载模板,使用JSP模板。使用默认主题(xhtml),默认主题目录(template)从Web应用中加载模板,使用JSP模板。使用自定义主题,自定义主题目录从/WEB-INF/classes路径下加载模板,使用ftl模板。上面使用了FreeMarker和JSP模板,FreeMarker模板的ftlCustomTemplate.ftl代码如下:FreeMarker自定义模板请选择您喜欢的图书JSP模板jspCustomTemplate.jsp的代码如下:JSP自定义模板请选择您喜欢的图书datedate标签用于

15、格式化输入一个日期,还可以计算指定日期和当前时刻之间的时差。date属性:format:可选,如指定该属性,将根据该属性指定的格式来格式化日期nice:可选,值为true或者false,用于指定是否输出指定日期和当前时刻的时差。默认是false,即不输出name:必填,指定要格式化的日期id:可选,指定引用该元素的id值通常,nice属性和format属性不同时指定,(不指定nice属性时,该属性值为false)。因为指定nice为true,代表输出指定日期和当前时刻的时差;指定format属性,则表明将指定日期按format指定的格式来个格式化输出。如果即没有指定format,也没指定nic

16、e=“true”,则系统会到国际化资源文件中寻找key为struts.date.format的消 息,将该消息当成格式化文本来格式化日期。如果无法找到key为struts.date.format的消息,则默认采用 DateFormat.MEDIUM格式输出。看如下jsp代码:1 nice = false,且指定format=“dd/MM/yyyy”2 nice = true,且指定format=“dd/MM/yyyy”3 指定nice = true4 nice = false,且没有指定format当没有指定nice=“true”属性,且不指定format属性时,系统将日期格式化成“2008年

17、01月23日”,这是因为在系统的全局国际化资源文件中提供了如下一行:#指定Struts2默认的国际化资源文件datetimepickerdatetimepicker标签就是生成一个有日期控件的文本输入框。它有一个前提就是要在内加一个,然后可以在form内加上该标签。(1)、静态构造有初始值的日期输入项代码1. (2)、动态构造有初始值的日期输入项代码1. 在给输入项动态赋初始值时,要用ONGL的%表达式,而不能用#表达式。上面代码中的date变量需在action里有事选定义.debug debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack

18、 Context 中的所有值信息。使用debug标签只有一个id属性,这个属性仅仅是该元素一个引用id。在页面上增加标签,通过debug标签,可以看的系统中ValueStack离得全部信息,并可以看到Stack Context中的属性。示范代码:/直接在jsp页面上面添加这样的标签,就可以生产一个查看debug信息的链接divdiv是struts2 ajax中最基础的标签,其他的标签均和div有关系。div的最大的用途就是可以异步的更新div中的内容。这里写一些div基本的应用,其他的等写别的标签的时候再写。通过例子说明 Initial Content doubleselectdoublese

19、lect标签输出关联的两个HTML列表框,产生联动效果。名称必需默认类型描述list是无Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容listKey否无String指定集合对象中的哪个属性作为选项的value,该选项只对第一个列表框起作用listValue否无String指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用headerKey否无String设置当用户选择了header选项时,提交的的v

20、alue,如果使用该属性,不能为该属性设置空值headerValue否无String显示在页面中header选项内容emptyOption否falseBooleanmultiple否falseBoolean是否多选size否无Integer显示的选项个数,该选项只对第一个列表框起作用doubleId否无String指定第二个列表框的IDdoubleList是无Cellection Map Enumeration Iterator array要迭代的集合doubleListKey否无String指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用doubleListValu

21、e否无String指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用doubleSize否无Integer选项个数doubleName否无String指定第二个列表框的name映射doubleValue否无Object第二个列表框的初始选种项实例:elseelse标签用来控制基本的条件处理流程,通常和if、elseif标签连用。 参数名字是否必须默认值可否使用表达式类型描述id否是String用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性test是是Boolean用来决定是否显示标签内部内容的表达式例子 Will Not Be Executed Wil

22、l Be Executed Will Not Be Executedelseifelseif标签用来控制基本的条件处理流程,通常和if、else标签连用。参数名字是否必须默认值可否使用表达式类型描述id否是String用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性test是是Boolean用来决定是否显示标签内部内容的表达式例子 Will Not Be Executed Will Be Executed Will Not Be Executedfielderrorfielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是

23、一个map类型的属性。Action类中这样定义:public String execute() throws Exception.addFieldErrors(field1, field1 error);addFieldErrors(field2, field2 error);.jsp中输出错误信息:file文件选择组建file标签输出一个HTML文件选择框,等价于html代码:。名称必需默认类型描述accept否inputStringHTML accept属性,指出接受文件的MIME类型例子:formform标签输出一个HTML from 例子: 可以上传文件的form。generator使

24、用generator标签可以将指定字符串按指定分隔符分成多个子串,临时生成的多个子串可以使用iterator标签来迭代输出。可以这样理解:generator将一个字符串转化成一个集合。在该标签的标签体内,整个临时生成的集合将位于ValueStack的顶端,蛋一旦该标签结束,该集合将被移出ValueStack。属性: 1. count :可选属性,该属性指定生成集合中元素的总数。 2. separator :必填属性,指定用于解析字符串的分隔符。 3. val:必填属性,指定被解析的字符串。 4. converter:可选属性,指定一个转换器,该转换器负责将集合汇总的每个字符串转换成对象 5.

25、id:可选属性,如果指定了该属性,则将生成的集合放在pageContext属性中 例1:生成一个简单的iterator,并且使用iterator标签打印出内容。 例2:生成一个iterator,使用count属性。因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。Generate an iterator with count attribute 例3:生成iterator,使用了id属性,之后生成的对象放在pageContext中,可以通过指定的id来访问。 例4:生成iterator,使用converter属性,这里的convertor仅仅将每

26、一个对象添加了一个converter-前缀。 public class GeneratorTagAction extends ActionSupport . public Converter getMyConverter() return new Converter() public Object convert(String value) throws Exception return converter-+value; ; . headhead标签主要用于成生HTML主要页面的HEAD部分。国为有些主题需要包含特定的CSS和javascript代码,而该标签则用于生成对这此CSS和java

27、Script代码的引用。有属性:1、debug: 使用ajax主题时将该属性设置为true,将开启调试模式2、calendarcss:jscalendar控件使用的css主题例子:page 1hiddenhidden标签输出一个HTML隐藏表单元素,等价于HTML代码:。在xhtml主题下,hidden标签与其他的标签不一样,hidden标签并不输出表行。xhtml主题直接从simple主题继承了hidden.ftl模板。例子:i18n该标签用于加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包。参数:名称必需默认类型描述value是Objec

28、t/String资源包的类路径(如com.xxxx.resources.AppMsg)id否Object/String用来标识元素的id。在UI和表单中为HTML的id属性 例子:HelloWorld=Hello Wrold!例3 classes ApplicationMessages.properties Internationization ifIf标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。参数名字是否必须默认值可否使用表达式类型描述id否是String用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性test是是Boolean用来决定

29、是否显示标签内部内容的表达式例子 Will Not Be Executed Will Be Executed Will Not Be Executedincludeinclude标签用于将一个JSP页面,或者一个Servlet包含到本页面中,使用该标签有如下两个属性:value:必填,指定需要被包含的JSP页面,或者Servletid:可选,指定该标签的ID引用还可以为标签指定多个子标签,用于将多个参数值传入被包含的JSP页面或者Servlet看下面代码:使用s:include标签来包含目标页面 被包含的页面仅使用表达式语言输出author参数,被包含页面的代码如下:被包含的页面$param.

30、authorinputtransferselect获取form的一个输入 iterator迭代处理一个java.util.Connection或者java.util.Iterator对象参数名字是否必须默认值可否使用表达式类型描述id否是StringId,status否否是Boolean如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态value否是String被迭代的对象例1: day is: 例2: Days of the week 例3: tr class=oddeven , labelxhtml主题下的label 标签输出两个 HTM

31、L的label标签(simple主题下的label标签只输出一个HTML label标签)。分别位于一行的两列,左列的label标签器提示作用,右列的label标签用于显示只读的action属性数据。例子:上述代码再客户端浏览器里面输出如下:用户名:如果Action实例已经创建,并且user.username有值,那么在表的右列中将显示user.username的值merge合并遍历集合出来的值,与标签用法相似。MergeAction.javaOverridepublic String execute() throws Exception HttpServletRequest request

32、= ServletActionContext.getRequest();List list1 = new ArrayList();list1.add(11);list1.add(22);List list2 = new ArrayList();list2.add(aa);list2.add(bb);List list3 = new ArrayList();list3.add(AA);list3.add(BB);XmxxBean xmxxBean = new XmxxBean(11 , XMBH001 , ERP);List list4 = new ArrayList();list4.add(x

33、mxxBean);request.setAttribute(list1, list1);request.setAttribute(list2, list2);request.setAttribute(list3, list3);request.setAttribute(list4, list4);return mergeTag;struts.xml /taguser/mergeTag.jsp mergeTag.jspoptgroupoptgroup标签用于生成一个下拉列表框的选项组,因此,该标签必须放在标签中使用,一个下拉列表框中可以包含多个选项组,因此可以在一个标签中使用多个标签。例子代码如

34、下:使用s:optgroup生成下拉选择框的选项组使用s:optgroup生成下拉选择框的选项组 通过浏览以上页面,我们可以看到:直接通过select标签的list属性生成的选项,是单独的选项,但通过optgroup标签的list属性生成的选项,则形成一个选项组,对于选项组的组名,是无法选择的。 optiontransferselectoptiontransferselect标签创建一个选项转移列表组建,它由两个标签以及它们之间的用于将选项在两个之间相互移动的按钮组成。表单提交时,将提交两个列表框中选中的选项。名称必需默认类型描述list是无Cellection Map Enumeration

35、 Iterator array要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容,该选项只对第一个列表框起作用listKey否无String指定集合对象中的哪个属性作为选项的value,该选项只对第一个列表框起作用listValue否无String指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用headerKey否无String设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值headerValue否无String显示在页面中header选

36、项内容multiple否falseBoolean是否多选size否无Integer显示的选项个数,该选项只对第一个列表框起作用doubleId否无String指定第二个列表框的IDdoubleList是无Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素来设置各个选项,如果doubleList的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容,该选项只对第二个列表框起作用doubleListKey否无String指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用double

37、ListValue否无String指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用doubleHeaderKey否无String设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值doubleHeaderVale否无String显示在页面中header选项内容doubleEmptyOption否无String是否在第二列表框的header后面添加一个空选项doubleMultiple否trueBoolean是否多选doubleSize否无Integer选项个数doubleName否无String指定第二个列表框的name映射doubl

38、eValue否无Object第二个列表框的初始选种项leftTitle否无String左边列表框的标题rightTitle否-String右边列表框的标题addToLeftLable否StringaddToRightLableaddAllToLeftLableaddAllToRightLableleftUpLabelleftDownLabelrightUpLabelrightDownLabelallowAddToLeftallowAddTorightallowAddAllToLeftallowAddAllToRightallowSelectAll否无Boolean设置是否使用全部选择按钮all

39、owUpdownOnLeftallowUpDownOnRight例子: - paramparam标签主要用于为其他标签提供参数param标签属性:name:可选,指定需要设置参数的参数名value: 可选,指定需要设置参数的参数值id:可选,指定引用该元素的id用法:这里color参数的值是,blue对象的值-如果blue对象不存在,则color为null。如果要指定字符串则value=” blue “password标签类同于HTML的,其name和label类同于例子:property property标签用于输出值栈中的对象的属性值,使用value属性来指定要输出的对象属性,如果没有指定

40、value属性,那么默认输出栈顶对象。属性如下:1. default: 可选,如果需要输出的属性值为null,则显示的default属性指定的值 2. escape: 可选,指定是否escapeHTML代码 3. value: 可选,指定需要输出的属性值。如果没指定,默认输出ValueStack栈顶的值 4. id: 可选,指定该元素的标识 例子:取出栈顶对象(通常是action)的username 属性并输出,如果没有找到username属性,那么输出“游客”。pushpush标签用于将某个值放到ValueStack的栈顶,可以跟简单的访问该值。属性:value:必填,指定需要放到Value

41、Stack栈顶的值id:可选,指定该标签的ID下面代码,讲一个值放到ValueStack的栈顶,从而可以通过标签来访问代码如下: radio radio标签的用法与checkboxlist的用法几乎完全相同,一样可以指定label, list, listKey, listValue等属性。例子代码如下:使用s:radio生成多个单选框使用s:radio生成多个单选框resetreset标签reset标签输出一个重置按钮名称必需默认类型描述type否inputString要使用的重置按钮的内容,input、button例子:select下拉列表s:select标签输出一个下拉列表框,相当于HTM

42、L代码中的名称必需默认类型描述list是无Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容listKey否无String指定集合对象中的哪个属性作为选项的valuelistValue否无String指定集合对象中的哪个属性作为选项的内容headerKey否无String设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值headerValue否无String显示在页面中heade

43、r选项内容emptyOption否falseBoolean是否在header选项后面添加一个空选项multiple否falseBoolean是否多选size否无Integer显示的选项个数例子:使用name和list属性,list属性的值是一个列表使用name和list属性,list属性的值是一个Map使用headerKey和headerValue属性设置header选项使用emptyOption属性在header选项后添加一个空的选项使用multiple属性设置多选使用size属性设置下拉框可显示的选项个数使用listKey和listValue属性,利用Action实例的属性(propert

44、y)来设置选项的值和选项的内容setset标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内。标签属性:name 是必填属性,是重新生成的新变量的名字scope 可选属性,指定新变量被放置的范围,可以接受application,session,request,page,action 这5个值 没有指定默认是Stack Context中value 可选属性,指定变量的值 如果没有指定,使用ValueStack栈顶的值赋给新变量id 可选属性,

45、指定新元素的引用ID下面是个例子:将p放入默认范围内 将p放入application范围内。 将p放入session范围内。$sessionScope.test.name $sessionScope.test.age sort对一个可以迭代的对象进行排序操作。 参数名字是否必须默认值可否使用表达式类型描述Comparator是是java.util.Comparator排序用的比较器Source否是String排序对象例1: 例2:submit按钮Submit标签输出一个按钮,submit标签和form标签使用可以提供异步表单提交功能。Submit标签可以输出以下三种类型的提交按钮:Input:

46、等价于HTML代码Image:等价于HTML代码Button:名称必需默认类型描述type否inputString要使用的提交按钮的类型,有效值:input button imagesrc否无String为image类型的提交按钮设置图片地址。该属性对input和button类型的提交按钮无效action否无String指定处理提交请求的actionmethod否无String指定处理提交请求的action的方法实例实例1.页面输出:实例2.页面输出:登陆Struts2预定义的前缀:1。method method:login使用method前缀,来取代action默认的execute()方法的

47、执行。 注意:1。input类型的按钮,不能用label设置按钮上的文本,只能用value2、action前缀使用action前缀,取代form标签指定的action,导向到另一个action进行处理。 2、redirect前缀使用redirect前缀请求重定向到其他的url,甚至可以是web英语程序外部的url。 2、redirect-action前缀使用redirect-action前缀请求重定向到其他的action. subset递归iterator的一部分。参数名字是否必须默认值可否使用表达式类型描述countFalse是IntegerIterator中被递归的一部分的item的数量D

48、ecider否是org.apache.struts2.util.SubsetIteratorFilter.Decider用来判断iterator中的item是否包含在最终的subset内部Source否是StringIterator的对象Start否是Integer开始位置例子Java类public class MySubsetTagAction extends ActionSupport public String execute() throws Exception l = new ArrayList(); l.add(new Integer(1); l.add(new Integer(2

49、); l.add(new Integer(3); l.add(new Integer(4); l.add(new Integer(5); return done; public Integer getMyArray() return a; public List getMyList() return l; public Decider getMyDecider() return new Decider() public boolean decide(Object element) throws Exception int i = (Integer)element).intValue(); re

50、turn (i % 2) = 0)?true:false); ; tabbedPanel标签,用来在HTML页面中生成类似于Windows程序的Tab页,从而可以在有限的空间中放置更多的内容。tabbedPanel标签生成的Tab页的内容可以是静态的,也可以是动态的。如果是静态的,则直接指定Tab页面的内容,如果是动态的,则可以使用Ajax方式来动态加载Tab页的内容。tabbedPanel标签生成整个Tab框架,而tabbedPanel标签类的div子标签则生成的单独的Tab页,每个div标签生成一个Tab页。因为div标签本身是一个Ajax标签,允许内容动态改变,因此每个Tab页的内容可以

51、动态改变。1 、 创建action类,类名为DateACtion.java,包名为:com.teana.action,代码如下:package com.teana.action;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;/* author TEANA - 2010-4-10* struts2 ajax submit 按钮应用* 窗口 首选项 Java 代码生成 代码和注释*/public class DateAction extends ActionSupportprivate static final

52、 long serialVersionUID = 5709206967517064698L;private Date now;public Date getNow()return now;public void setNow(Date now)this.now = now;public String execute() throws Exceptionnow = new Date();return SUCCESS;2、创建tabbedPanel.jsp页面,代码如下: struts 2 ajax s:div struts2 s:tabbedPanel 实现AJAX效果 静态的DIV 3:每六秒

53、钟刷新一次,但有三秒延迟 3 、在struts.xml文件中配置action,代码如下:/jsp/ajax/showDate.jsp4 、编写showDate.jsp页面,代码如下: 服务器的当前时间为: text用于输出国际化消息,和i18n结合使用。示范代码: 详细情况请参考 i180ntextareaTextarea标签输出一个HTML多行文本输入控件,等价于HTML代码:名称必需默认类型描述cols否无Integer列数rows否无Integer行数readonly否falseBoolean当该属性为true时,不能输入wrap否falseBoolean指定多行文本输入控件是否应该换行

54、id否Object/String用来标识元素的id。在ui和表单中为HTML的id属性例子:textfield单行文本框Textfield标签输出一个HTML单行文本输入控件,等价于HTML代码名称必需默认类型描述maxlength否无Integer文本输入控件可以输入字符的最大长度readonly否falseBoolean当该属性为true时,不能输入size否无Integer指定可视尺寸id否Object/String用来标识元素的id。在ui和表单中为HTML的id属性例子:tokentoken标签是用于防止多次提交的标签。避免了刷新页面时多次提交,如果需要该标签起作用,则应该在Stru

55、ts2的配置文件中启用TokenInterceptor拦截器或TokenSessionStoreInterceptor拦截器。token标签的实现原理是在表单中拉架一个隐藏域,每次加载该页面时,该隐藏域的值都不相同。而TokenInterceptor拦截器则拦截所有用户请求,如果两次请求时该隐藏域的值相同,则阻止表单提交。使用该标签很简单,如下代码:使用s:token防止重复提交从访问后产生的HTML页面的源代码可以看到如下HTML代码:treetree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。例子如下:使用s:tree和s

56、:treenode标签生成静态树使用s:tree和s:treenode标签生成静态树 treenode tree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。例子如下:使用s:tree和s:treenode标签生成静态树使用s:tree和s:treenode标签生成静态树 updownselectupdownselect标签updownselect标签创建一个带有上下移动的按钮的列表框,可以通过上下移动按钮来调整列表框的选项的位置。名称必需默认类型描述list是无Cellection Map Enumeration Iterat

57、or array要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容listKey否无String指定集合对象中的哪个属性作为选项的valuelistValue否无String指定集合对象中的哪个属性作为选项的内容headerKey否无String设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值headerValue否无String显示在页面中header选项内容emptyOption否falseBoolean是否在header选项后面添加一个空选项multi

58、ple否falseBoolean是否多选size否无Integer显示的选项个数moveUplabel否String设置向上移动按钮上的文本moveDownLabel否String设置向下移动按钮上的文本selectAllLabel否String设置向全部选择按钮上的文本allowMoveUp否无Boolean设置是否使用向上移动按钮allowMoveDown否无Boolean设置是否使用向下移动按钮allowSelectAll否无Boolean设置是否使用全部选择按钮实例: package com.zhaosoft.ui.formtag;public class BookService pu

59、blic Book getBooks() return new Book new Book(Spring2.0宝典,zhaosoft), new Book(轻量级J2EE企业应用实战,zhaosoft), new Book(基于J2EE的Ajax宝典,zhaosoft) ; urlurl标签用于生成一个URL地址,可以通过param向url标签指定参数,从而指定URL发送请求参数。url标签的属性:includeParams:可选,指定是否包含请求参数。该属性的属性值只能为none,get或者allscheme:可选,用于设置scheme属性value:可选,指定生成URL的地址。如果不提供就

60、用action属性指定的Action作为URL地址值。action:可选,指定生成URL的地址为哪个Action,如果Action不提供,就使用value作为URL的地址值。namespace:可选,该属性指定命名空间method:可选,指定使用Action的方法encode:这是一个可选属性,指定是否需要encode请求参数includeContext:可选,指定是否需要将当前上下文包含在URL地址中。anchor:可选,指定URL的描点。id:可选,指定该url元素的引用idaction属性和value属性的作用大致相同。指定action属性,系统会在指定属性后加.action后缀。如果两个都没有指定,就以当前页作为URL的地址值。实例代码如下:只指定value属性:指定action属性,且使用param传入参数的形式。 既不指定action属性,也不指定value属性,且使用param传入参数的形式。 同时指定action属性和value属性,且使用param传入参数的形式

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 计算机应用/办公自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号