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的处理结果(视图支援)包含到本页面中来。action标签的属性:id:可选属性,该属性将会作为该Action的引用IDname:必填属性,指定该标签调用哪个Actionnamespace:可选,指定该标签调用的Action所在的namespace.executeResult:可选,指定是否要将Action的处理结果页面包含到本页面。默认是false,即不包含ignoreContextParams:可选,它指定该页面中的请求参数是否需要传入调用的
2、Action、默认是false,即将本页的请求参数传入被调用的Action。下面是本示例应用中的Action类,包含连个处理逻辑。代码如下public class TagAction extednds 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类映射成两个逻辑Action。代码如下succ.jsp loginSucc.jsp .上面配置文件将一个Action类定义成两个逻辑Action,可以在JSP页面中通过标签来调用这两个逻辑Action
3、,部分jsp代码如下: 下面调用第一个Action,并将结果包含到本页面中。下面调用第二个Action,并将结果包含到本页面中。阻止本页面请求参数传入Action 下面调用第二个Action,且不将结果包含到本页面中。上面页面中,通过指定executeResult属性来控制是否将处理结果包含到本页面中;还可以通过ignoreContextParams属性来决定是否将本页面的请求参数出入Action。actionerror这个标签负责输出错误信息到客户端,例子如下:Action代码如下:package lee;import com.opensymphony.xwork2.ActionSupport;public class DemoAction extends ActionSupportOverridepublic String execute() addActionError(第一条错误消息!); addActionError(第二条错误消息!); return SUCCESS;JSP页面代码如下:actionmessage这个标签负责输出提示信息到客户端,例子如下:Action代码如
4、下: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用来保存结果iterator的对象在value context中的名字。例子Action类public class AppendIteratorTagAction extends ActionSupport private List myList1;private List myList2;private List myList3;public String execute() throws Ex
5、ception myList1 = new ArrayList(); myList1.add(1); myList1.add(2); myList1.add(3); myList2 = new ArrayList(); 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的实例。创建JavaBean实例时,可以在标签体内使用标签为该JavaBean实例 传入属性,要使用这个标签,需要为该JavaBean类提供对应的setter方法。如该JavaBean类提供了对应的gett
6、er方法,我们就可以访 问对应的属性。bean标签的属性:name:必填,指定要实例化的JavaBean的实现类id:可选。如指定了该属性,则该Javabean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该id属性来访问该JavaBean实例。【!注意:在bean标签内时,bean标签创建的JavaBean实例放在valuestack的栈顶,该标签结束,生成的子集被移出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
7、. 性别 checkboxlist复选框名称必需默认类型描述fieldValue是trueString指定在复选框选中时,实际提交的值复选框组,对应Action中的集合名称必需默认类型描述list是无Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容listKey否无String指定集合对象中的哪个属性作为选项的valuelistValue否无String指定集合对象中的哪个属性作为选项的内容例子:checkboxlistTag.jsp comboboxcombobox标签生成一个单行文本框和下拉列表框的结合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name属性,也就不会产生请求参数。使用该标签时,需要指定一个list属性,该list属性指定的集合将用于生成列表框。例子如下:使用s:combobox生成下拉输入框使用s:combobox生成下拉输
8、入框通过访问上面的JSP页面,我们可以看到上面的文本框,用户可以自行输入,可也以选择下面的checkbox中的内容来进行输入。需要注意的是,此时的下拉列表仅仅是用于辅助输入的,并没有任何实际意义,因此不能指定它的listKey和listValue属性。conponentconponent标签用于使用自定义标签,因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性:theme:自定义组件所使用的主题,默认使用xhtml主题。templateDir:指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。template:指定自定义组件所使用的模板。此外,还可以component标签中使用param标签来注入参数的值。例子如下:使用s:component标签使用s:component标签使用自定义主题,自定义主题目录从Web应用根路径下加载模板,使用ftl模板。使用自定义主题,自定义主题目录从Web应用根路径下加载模板,使用JSP模板。使用默认主题(xhtml),默认主题目录(template)从Web应用中加载模板,使用
9、JSP模板。使用自定义主题,自定义主题目录从/WEB-INF/classes路径下加载模板,使用ftl模板。上面使用了FreeMarker和JSP模板,FreeMarker模板的ftlCustomTemplate.ftl代码如下:FreeMarker自定义模板请选择您喜欢的图书JSP模板jspCustomTemplate.jsp的代码如下:JSP自定义模板请选择您喜欢的图书datedate标签用于格式化输入一个日期,还可以计算指定日期和当前时刻之间的时差。date属性:format:可选,如指定该属性,将根据该属性指定的格式来格式化日期nice:可选,值为true或者false,用于指定是否输出指定日期和当前时刻的时差。默认是false,即不输出name:必填,指定要格式化的日期id:可选,指定引用该元素的id值通常,nice属性和format属性不同时指定,(不指定nice属性时,该属性值为false)。因为指定nice为true,代表输出指定日期和当前时刻的时差;指定format属性,则表明将指定日期按format指定的格式来个格式化输出。如果即没有指定format,也没指定nic
10、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年01月23日”,这是因为在系统的全局国际化资源文件中提供了如下一行:#指定Struts2默认的国际化资源文件datetimepickerdatetimepicker标签就是生成一个有日期控件的文本输入框。它有一个前提就是要在内加一个,然后可以在form内加上该标签。(1)、静态构造有初始值的日期输入项代码1. (2)、动态构造有初始值的日期输入项代码1. 在给输入项动态赋初始值时,要用ONGL的%
11、表达式,而不能用#表达式。上面代码中的date变量需在action里有事选定义.debug debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack Context 中的所有值信息。使用debug标签只有一个id属性,这个属性仅仅是该元素一个引用id。在页面上增加标签,通过debug标签,可以看的系统中ValueStack离得全部信息,并可以看到Stack Context中的属性。示范代码:/直接在jsp页面上面添加这样的标签,就可以生产一个查看debug信息的链接divdiv是struts2 ajax中最基础的标签,其他的标签均和div有关系。div的最大的用途就是可以异步的更新div中的内容。这里写一些div基本的应用,其他的等写别的标签的时候再写。通过例子说明 Initial Content doubleselectdoubleselect标签输出关联的两个HTML列表框,产生联动效果。名称必需默认类型描述list是无Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素
12、来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容listKey否无String指定集合对象中的哪个属性作为选项的value,该选项只对第一个列表框起作用listValue否无String指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用headerKey否无String设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值headerValue否无String显示在页面中header选项内容emptyOption否falseBooleanmultiple否falseBoolean是否多选size否无Integer显示的选项个数,该选项只对第一个列表框起作用doubleId否无String指定第二个列表框的IDdoubleList是无Cellection Map Enumeration Iterator array要迭代的集合doubleListKey否无String指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用doubleListValu
13、e否无String指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用doubleSize否无Integer选项个数doubleName否无String指定第二个列表框的name映射doubleValue否无Object第二个列表框的初始选种项实例:elseelse标签用来控制基本的条件处理流程,通常和if、elseif标签连用。 参数名字是否必须默认值可否使用表达式类型描述id否是String用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性test是是Boolean用来决定是否显示标签内部内容的表达式例子 Will Not Be Executed Will Be Executed Will Not Be Executedelseifelseif标签用来控制基本的条件处理流程,通常和if、else标签连用。参数名字是否必须默认值可否使用表达式类型描述id否是String用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性test是是Boolean用来决定是否显示标签内部内容的表达式例子 Will Not Be Executed W
14、ill Be Executed Will Not Be Executedfielderrorfielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是一个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使用generator标签可以将指定字符串按指定分隔符分成多个子串,临时生成的多个子串可以使用iterator标签来迭代输出。可以这样理解:generator将一个字符串转化成一个集合。在该标签的标签体
15、内,整个临时生成的集合将位于ValueStack的顶端,蛋一旦该标签结束,该集合将被移出ValueStack。属性: 1. count :可选属性,该属性指定生成集合中元素的总数。 2. separator :必填属性,指定用于解析字符串的分隔符。 3. val:必填属性,指定被解析的字符串。 4. converter:可选属性,指定一个转换器,该转换器负责将集合汇总的每个字符串转换成对象 5. 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仅仅将每
16、一个对象添加了一个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和javaScript代码的引用。有属性:1、debug: 使用ajax主题时将该属性设置为true,将开启调试模式2、calendarcss:jscalendar控件使用的css主题例子:page 1hiddenhidden标签输出一个HTML隐藏表单元素,等价于HTML代码:。在xhtml主题下,hidden标签与其他的标签不一样,hidden标签并不输出表行。xhtml主题直接从simple主题继承了
17、hidden.ftl模板。例子:i18n该标签用于加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包。参数:名称必需默认类型描述value是Object/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用来决定是否显示标签内部内容的表达式例子 Will Not Be Executed Will Be Executed Will Not Be Executedincludeinclude标签用于将一个JSP页
18、面,或者一个Servlet包含到本页面中,使用该标签有如下两个属性:value:必填,指定需要被包含的JSP页面,或者Servletid:可选,指定该标签的ID引用还可以为标签指定多个子标签,用于将多个参数值传入被包含的JSP页面或者Servlet看下面代码:使用s:include标签来包含目标页面 被包含的页面仅使用表达式语言输出author参数,被包含页面的代码如下:被包含的页面$param.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
《struts2标签详解》由会员桔****分享,可在线阅读,更多相关《struts2标签详解》请在金锄头文库上搜索。
校长素质与学校品牌建设
简短自我介绍汇编15篇
乐理知识全面认知(简谱)
最新工作总结xx最新安全月工作总结范文
国家档案管理工作总结(2篇).doc
中秋月饼销售活动方案
急诊医学总结
融景园豪宅文案
新学期小学教研组工作计划范本(3篇)
寝室电源忘关的检讨书
国际投资有限公司商业计划书规范
八年级语文上册第二单元第6课回忆我的母亲夹叙夹议情感真挚课文同步讲解新人教版2
2023保洁年度工作总结(2篇).doc
高中英语语法大全完整版
学年第二学期团总支副书记工作总结
2023年广东省韶关市仁化县董塘镇高莲村社区工作人员考试模拟题含答案
工程造价与审减金额
司法观看《将改革进行到底》体会
防损主管的工作职责
建筑起重信号司索工考试名师点拨提分卷含答案参考97
2024-03-07 87页
2023-12-26 16页
2023-12-26 28页
2023-07-21 7页
2023-07-21 3页
2023-07-21 14页
2023-07-21 3页
2023-07-21 30页
2023-07-21 34页
2023-07-21 15页