1、Struts2标签库Taglib (Struts2标签库)Struts2 Taglib抽象了不同表示技术,现在Struts2主要支持三种表示技术:JSP,FreeMarker和Velocity。但部分的Tag在三种表示技术下都可以使用,但是也有部分只能在某一种情况下使用。Tab可以分为两类:通用标签和UI标签。4.1节 通用标签通用标签用来在页面表示的时候控制代码执行的过程,这些标签也允许从Action或者值堆栈中取得数据。例如地域,JavaBeans,URLs,和action。控制标签控制程序执行,例如:if,else,iterator数据标签管理数据的取得和创建,例如:bean,push,
2、i18n控制标签if标签 描述 If标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。参数名字是否必须默认值可否使用表达式类型描述id否是String用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性test是是Boolean用来决定是否显示标签内部内容的表达式例子 Will Not Be Executed Will Be Executed Will Not Be ExecutedelseIf 标签参考if标签else 标签参考if标签append标签 描述用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。
3、参数名字是否必须默认值可否使用表达式类型描述id否是String用来保存结果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)
4、; 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 myLis
5、t3; 标签使用 generator 标签(JSP Tag)描述从val属性生成一个iterator。参数例子例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属性,这里
6、的convertor仅仅将每一个对象添加了一个converter-前缀。 public class GeneratorTagAction extends ActionSupport . public Converter getMyConverter() return new Converter() public Object convert(String value) throws Exception return converter-+value; ; .iterator 标签描述迭代处理一个java.util.Connection或者java.util.Iterator对象参数名字是否必须
7、默认值可否使用表达式类型描述id否是StringId,status否否是Boolean如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态value否是String被迭代的对象例子例1: day is: 例2: Days of the week 例3: tr class=oddeven , merge 标签(同append?)描述参数例子sort 标签(JSP-Tag)描述对一个可以迭代的对象进行排序操作。 参数 名字是否必须默认值可否使用表达式类型描述Comparator是是java.util.Comparator排序用的比较器Source否
8、是String排序对象例子例1: 例2:subset描述递归iterator的一部分参数名字是否必须默认值可否使用表达式类型描述countFalse是IntegerIterator中被递归的一部分的item的数量Decider否是org.apache.struts2.util.SubsetIteratorFilter.Decider用来判断iterator中的item是否包含在最终的subset内部Source否是StringIterator的对象Start否是Integer开始位置例子Java类public class MySubsetTagAction extends ActionSupp
9、ort public String execute() throws Exception l = new ArrayList(); l.add(new Integer(1); l.add(new Integer(2); 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 ne
10、w Decider() public boolean decide(Object element) throws Exception int i = (Integer)element).intValue(); return (i % 2) = 0)?true:false); ; 数据标签TODO 完成如下数据标签数据标签包括a action bean date debug i18n include param push set text url property4.2节 UI标签UI标签主要是指Form相关的标签,UI标签又分为两部分:form标签和构成form内部字段的其他标签。每一个UI标
11、签都是基于模板的,即:每一个标签都有一个对应的模板用来生成UI标签的样式,详细内容参看模板节。所有的UI标签都有着共通的祖先UIBean,UIBean提供了这些UI标签的一系列共通的属性,这些属性可以分为三类:模版相关的属性,JavaScript相关的属性和其他通用属性。模版相关属性:属性主题数据类型说明templateDirn/aString定义模版目录themen/aString定义主题的名字templaten/aString定义模版名字JavaScript相关属性:属性主题数据类型说明onclicksimpleStringhtml javascript onclick 属性ondbcli
12、cksimpleStringhtml javascript ondbclick属性onmousedownsimpleStringhtml javascript onmousedown属性onmouseupsimpleStringhtml javascript onmouseup属性onmouseoversimpleStringhtml javascript onmouseover属性onmouseoutsimpleStringhtml javascript onmouseout属性onfocussimpleStringhtml javascript onfocus属性onblursimpleS
13、tringhtml javascript onblur属性onkeypresssimpleStringhtml javascript onkeypress属性onkeyupsimpleStringhtml javascript onkeyup属性onkeydownsimpleStringhtml javascript onkeydown属性onselectsimpleStringhtml javascript onselect属性onchangesimpleStringhtml javascript onchange属性Tooltip相关属性:属性数据类型默认值说明tooltipStringn
14、one为指定的组件设置TooltipjsTooltipEnabledStringfalse使用js表示tooltiptooltipIconString/struts/static/tooltip/tooltip.gif指向tooltip图表的URLtooltipDelayString500多长时间后显示Tooltip keysimpleString这个输入字段对应的属性,用来自动设置name,label和value通用属性:属性主题数据类型说明cssClasssimpleString定义html class 属性cssStylesimpleString定义html style属性titlesi
15、mpleString定义html title属性disabledsimpleString定义html disabled属性labelxhtmlString定义form字段的标签labelPositionxhtmlString定义标签在Form中的位置,从左从上计算requiredPositionxhtmlString定义必须的标签在Form中的位置,从左从上计算namesimpleString定义form字段的name映射requiredxhtmlBoolean在label上添加一个*tabIndexsimpleString定义 html tabIndex属性valuesimpleObject
16、定义form字段的值对于name和value的说明:name用来说明Form字段的名字,和Action类的属性对应。value用来记录Form字段的值,和Action类中属性的值对应。所以在修改一个字段的内容的时候应该使用如下的标签: .但是,由于name和value的关系,struts2标准标签可以自动对应,所以也可以使用如下标签: .UI标签说明:Form部分autocompletercheckboxcheckboxlistcomboboxdatetimepickerdoubleselectheadfileformhiddenlabeloptiontransferselectoptgrou
17、ppasswordradioresetselectsubmittextareatextfieldtokenupdownselect非Form部分:actionerroractionmessagecomponentdivfielderrortabletabbedPaneltreetreenode4.3节 主题和模板概念说明:标签(tag):一小段代码,在JSP,Velocity或者FreeMarker中执行。程序开发的最小单位,用来生成HTML对应的元素。模板(template):一些代码,通常使用FreeMarker写成,可以被某些Tag表示出来(通常是UI Tag)。主题(theme):一组模板打包在一起,提供通用功能的模版主题和模板主要针对可视化的标签(Tag)而言,使用以下例子来说明三者之间的关系。假如我们要开发如下的一个画面:我们使用如下的代码: 这里,s:passwor
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1