taglibstruts2标签.docx
- 文档编号:11044989
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:36
- 大小:27.41KB
taglibstruts2标签.docx
《taglibstruts2标签.docx》由会员分享,可在线阅读,更多相关《taglibstruts2标签.docx(36页珍藏版)》请在冰豆网上搜索。
taglibstruts2标签
Taglib(Struts2标签库)
Struts2Taglib抽象了不同表示技术,现在Struts2主要支持三种表示技术:
JSP,FreeMarker和Velocity。
但部分的Tag在三种表示技术下都可以使用,但是也有部分只能在某一种情况下使用。
Tab可以分为两类:
通用标签和UI标签。
4.1节通用标签
通用标签用来在页面表示的时候控制代码执行的过程,这些标签也允许从Action或者值堆栈中取得数据。
例如地域,JavaBeans,URLs,和action。
控制标签控制程序执行,例如:
if,else,iterator
数据标签管理数据的取得和创建,例如:
bean,push,i18n
控制标签
if标签
描述
If标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。
参数
名字
是否必须
默认值
可否使用表达式
类型
描述
id
否
是
String
用来表示该元素,对于UI和Form标签来说直接转变为HTMLid属性
test
是
是
Boolean
用来决定是否显示标签内部内容的表达式
例子
iftest="%{false}">
if>
elseiftest="%{true}">
elseif>
else>
else>
elseIf标签
参考if标签
else标签
参考if标签
append标签
描述
用来做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");
return"done";
}
publicListgetMyList1(){returnmyList1;}
publicListgetMyList2(){returnmyList2;}
publicListgetMyList3(){returnmyList3;}
标签使用
appendid="myAppendIterator"> paramvalue="%{myList1}"/> paramvalue="%{myList2}"/> paramvalue="%{myList3}"/> append> iteratorvalue="%{#myAppendIterator}"> property/> iterator> generator标签(JSPTag) 描述 从val属性生成一个iterator。 参数 例子 例1: 生成一个简单的iterator,并且使用iterator标签打印出内容。 generatorval="%{'aaa,bbb,ccc,ddd,eee'}"> iterator> property/> iterator> generator> 例2: 生成一个iterator,使用count属性。 因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。 Generateaniteratorwithcountattribute generatorval="%{'aaa,bbb,ccc,ddd,eee'}"count="3"> iterator> property/> iterator> generator> 例3: 生成iterator,使用了id属性,之后生成的对象放在pageContext中,可以通过指定的id来访问。 generatorval="%{'aaa,bbb,ccc,ddd,eee'}"count="4"separator=","id="myAtt"/> <% Iteratori=(Iterator)pageContext.getAttribute("myAtt"); while(i.hasNext()) { Strings=(String)i.next(); %> <%=s%> <% } %> 例4: 生成iterator,使用converter属性,这里的convertor仅仅将每一个对象添加了一个"converter-"前缀。 generatorval="%{'aaa,bbb,ccc,ddd,eee'}"converter="%{myConverter}"> iterator> property/> iterator> generator> publicclassGeneratorTagActionextendsActionSupport{ .... publicConvertergetMyConverter(){ returnnewConverter(){ publicObjectconvert(Stringvalue)throwsException{ return"converter-"+value; } }; } ... } iterator标签 描述 迭代处理一个java.util.Connection或者java.util.Iterator对象 参数 名字 是否必须 默认值 可否使用表达式 类型 描述 id 否 是 String Id, status 否 否 是 Boolean 如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态 value 否 是 String 被迭代的对象 例子 例1: iteratorvalue="days"> dayis: property/> iterator> 例2: beanname="org.apache.struts2.example.IteratorExample"id="it"> paramname="day"value="'foo'"/> paramname="day"value="'bar'"/> bean> iteratorvalue="#it.days"status="rowstatus"> iftest="#rowstatus.odd==true"> grey"> property/> if> else> property/> else> iterator> 例3: iteratorvalue="groupDao.groups"status="groupStatus"> class=" iftest="#groupStatus.odd==true">odd if> else>even else>"> propertyvalue="name"/> propertyvalue="description"/> iteratorvalue="users"status="userStatus"> propertyvalue="fullName"/> iftest="! #userStatus.last">, if> iterator> iterator> merge标签(同append? ) 描述 参数 例子 sort标签(JSP-Tag) 描述 对一个可以迭代的对象进行排序操作。 参数 名字 是否必须 默认值 可否使用表达式 类型 描述 Comparator 是 是 java.util.Comparator 排序用的比较器 Source 否 是 String 排序对象 例子 例1: sortcomparator="myComparator"source="myList"> iterator> --dosomethingwitheachsortedelements--> propertyvalue="..."/> iterator> sort> 例2: sortid="mySortedList"comparator="myComparator"source="myList"/> <% IteratorsortedIterator=(Iterator)pageContext.getAttribute("mySortedList"); for(Iteratori=sortedIterator;i.hasNext();){ //dosomethingwitheachofthesortedelements } %> subset 描述 递归iterator的一部分 参数 名字 是否必须 默认值 可否使用表达式 类型 描述 count False 是 Integer Iterator中被递归的一部分的item的数量 Decider 否 是 org.apache.struts2.util. SubsetIteratorFilter.Decider 用来判断iterator中的item是否包含在最终的subset内部 Source 否 是 String Iterator的对象 Start 否 是 Integer 开始位置 例子 Java类 publicclassMySubsetTagActionextendsActionSupport{ publicStringexecute()throwsException{ l=newArrayList(); l.add(newInteger (1)); l.add(newInteger (2)); l.add(newInteger(3)); l.add(newInteger(4)); l.add(newInteger(5)); return"done"; } publicInteger[]getMyArray(){ returna; } publicListgetMyList(){ returnl; } publicDecidergetMyDecider(){ returnnewDecider(){ publicbooleandecide(Objectelement)throwsException{ inti=((Integer)element).intValue(); return(((i%2)==0)? true: false); } }; } } --s: Listbasic--> subsetsource="myList"> iterator> property/> iterator> subset> --B: Listwithcount--> subsetsource="myList"count="3"> iterator> property/> iterator> subset> --C: Listwithstart--> subsetsource="myList"count="13"start="3"> iterator> property/> iterator> subset> --D: Listwithid--> subsetid="mySubset"source="myList"count="13"start="3"/> <% Iteratori=(Iterator)pageContext.getAttribute("mySubset"); while(i.hasNext()){ %> <%=i.next()%> <%}%> --D: ListwithDecider--> subsetsource="myList"decider="myDecider"> iterator> property/> iterator> subset> 数据标签 @TODO完成如下数据标签 数据标签包括 a action bean date debug i18n include param push set text url property 4.2节UI标签 UI标签主要是指Form相关的标签,UI标签又分为两部分: form标签和构成form内部字段的其他标签。 每一个UI标签都是基于模板的,即: 每一个标签都有一个对应的模板用来生成UI标签的样式,详细内容参看模板节。 所有的UI标签都有着共通的祖先UIBean,UIBean提供了这些UI标签的一系列共通的属性,这些属性可以分为三类: 模版相关的属性,JavaScript相关的属性和其他通用属性。 模版相关属性: 属性 主题 数据类型 说明 templateDir n/a String 定义模版目录 theme n/a String 定义主题的名字 template n/a String 定义模版名字 JavaScript相关属性: 属性 主题 数据类型 说明 onclick simple String htmljavascriptonclick属性 ondbclick simple String htmljavascriptondbclick属性 onmousedown simple String htmljavascriptonmousedown属性 onmouseup simple String htmljavascriptonmouseup属性 onmouseover simple String htmljavascriptonmouseover属性 onmouseout simple String htmljavascriptonmouseout属性 onfocus simple String htmljavascriptonfocus属性 onblur simple String htmljavascriptonblur属性 onkeypress simple String htmljavascriptonkeypress属性 onkeyup simple String htmljavascriptonkeyup属性 onkeydown simple String htmljavascriptonkeydown属性 onselect simple String htmljavascriptonselect属性 onchange simple String htmljavascriptonchange属性 Tooltip相关属性: 属性 数据类型 默认值 说明 tooltip String none 为指定的组件设置Tooltip jsTooltipEnabled String false 使用js表示tooltip tooltipIcon String /struts/static/tooltip/tooltip.gif 指向tooltip图表的URL tooltipDelay String 500 多长时间后显示Tooltip key simple String 这个输入字段对应的属性,用来自动设置name,label和value 通用属性: 属性 主题 数据类型 说明 cssClass simple String 定义htmlclass属性 cssStyle simple String 定义htmlstyle属性 title simple String 定义htmltitle属性 disabled simple String 定义htmldisabled属性 label xhtml String 定义form字段的标签 labelPosition xhtml String 定义标签在Form中的位置,从左从上计算 requiredPosition xhtml String 定义必须的标签在Form中的位置,从左从上计算 name simple String 定义form字段的name映射 required xhtml Boolean 在label上添加一个* tabIndex simple String 定义htmltabIndex属性 value simple Object 定义form字段的值 对于name和value的说明: name用来说明Form字段的名字,和Action类的属性对应。 value用来记录Form字段的值,和Action类中属性的值对应。 所以在修改一个字段的内容的时候应该使用如下的标签: formaction="updateAddress"> textfieldlabel="PostalCode"name="postalCode"value="%{postalCode}"/> ... form> 但是,由于name和value的关系,struts2标准标签可以自动对应,所以也可以使用如下标签: formaction="updateAddress"> textfieldlabel="PostalCode"name="postalCode"/> ... form> UI标签说明: Form部分 autocompleter checkbox checkboxlist combobox datetimepicker doubleselect head file form hidden label optiontransferselect optgroup password radio reset select submit textarea textfield token updownselect 非Form部分: actionerror actionmessage component div fielderror table tabbedPanel tree treenode 4.3节主题和模板 概念说明: 标签(tag): 一小段代码,在JSP,Velocity或者FreeMarker中执行。 程序开发的最小单位,用来生成HTML对应的元素。 模板(template): 一些代码,通常使用FreeMarker写成,可以被某些Tag表示出来(通常是UITag)。 主题(theme): 一组模板打包在一起,提供通用功能的模版 主题和模板主要针对可视化的标签(Tag)而言,使用以下例子来说明三者之间的关系。 假如我们要开发如下的一个画面: 我们使用如下的代码: urlaction="login"id="loginUrl"> url> formaction="%{loginUrl}"> textfieldlabel="Name"name="name"/> passwordlabel="Password"name="password"/> submit> submit> reset> reset> form> 这里 form>, textfield>,Daysoftheweek
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- taglibstruts2 标签