Struts2常用标签总结
004 | Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。 |
005 | Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说Velocity和FreeMarker等模板技术中的使用 |
007 | (1)UI标签:(UserInterface,用户界面)标签,主要用于生成HTML元素标签,UI标签又可分为表单标签非表单标签 |
008 | (2)非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出ValueStack中的值,完成国际化等功能的) |
012 | <%@tagliburi="/struts-tags"prefix="s"%> |
013 | (2)在web.xml中声明要使用的标签这样是struts22.3.1.2版本的引入方式 |
015 | < filter-name >struts2</ filter-name > |
016 | < filter-class >org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</ filter-class > |
021 | < s:property
value = "%{@cn.csdn.hr.domain.User@Name}" />< br /> |
022 | < s:property
value = "@cn.csdn.hr.domain.User@Name" />< Br /> <!--以上两种方法都可以--> |
023 | < s:property
value = "%{@cn.csdn.hr.domain.User@study()}" /> |
024 | 以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。 |
027 | 以下用java代码代替的,访问某一个范围内的属性 |
029 | //采用pageContext对象往page范围内存入值来验证#attr搜索顺序是从page开始的,搜索的顺序为:page,reques,session,application。 |
030 | set存值的时候存到的是request中,在jsp页面中访问的时候不用加任何的标识符,即可直接访问,如果不同的作用域不一样了, |
031 | pageContext.setAttribute("name","laoowang",PageContext.PAGE_SCOPE); |
033 | < s:property
value = "#attr.name"
/> |
039 | < h3 >获取的是requet中的对象值</ h3 > |
040 | 第一种方式:< s:property
value = "#request.user1.realName" /> |
042 | 第二种方式:< s:property
value = "#request.user1['realName']" /> |
044 | 第三种方式:< s:property
value = "#user1.realName" /> |
046 | 第四种方式:< s:property
value = "#user1['realName']" /> |
048 | 第五种方式:${requestScope.user1.realName}||${requestScope.user1['realName']} |
050 | 第六种:< s:property
value = "#attr.user1.realName" /> |
051 | attr对象按page==>requestsessionapplictio找的 |
055 | 第一种方式:< s:property
value = "#session.user1.realName" /> |
057 | 第二种方式:< s:property
value = "#session.user1['realName']" /> |
060 | 第五种方式:${sessionScope.user1.realName}||${sessionScope.user1['realName']} |
062 | < h3 >获取application中的对象的值</ h3 > |
063 | 第一种方式:< s:property
value = "#application.user1.realName" /> |
065 | 第二种方式:< s:property
value = "#application.user1['realName']" /> |
068 | 第五种方式:${applicationScope.user1.realName}||${applicationScope.user1['realName']} |
073 | <!--status可选属性,该属性指定迭代时的IteratorStatus实例--> |
074 | <!--value="#attr.list"list存放到了request中可以value="#request.list" |
075 | statu.odd返回当前被迭代元素的索引是否是奇数 |
077 | < s:set
name = "list"
value = "{'a','b','c','d'}" ></ s:set > |
078 | < s:iterator
var = "ent"
value = "#request.list"
status = "statu" > |
079 | < s:if
test = "%{#statu.odd}" > |
080 | < font
color = "red" >< s:property
value = "#ent"
/> |
084 | < s:property
value = "#ent"
/> |
091 | 语法格式:#{key:value,key1:value1,key2:value2,.....}
|
092 | 以上的语法中就直接生成了一个Map类型的集合,该Map对象中的每个key-value对象之间用英文的冒号隔开
|
097 | < s:set
var = "map"
value = "#{'1':'laowang','2':'老王','3':'猩猩'}" ></ s:set > |
100 | < s:iterator
value = "#map" > |
101 | < s:property
value = "key"
/>:::< s:property value = "value" /> |
109 | < s:iterator
var = "user"
value = "#session['users']" > |
110 | < s:if
test="%{#user['price']>3000}"> |
111 | < s:property
value = "#user['price']" /> |
116 | < hr
color = "blue" /> <!--$是取出价格大于3000的最后一个值--> |
117 | < s:iterator
var = "u"
value="#session.users.{$(#this['price']>3000)}"> |
118 | < s:property
value = "price" /> |
121 | 注:users是User的对象,price是User中的一个属性 |
124 | iterator标签用于对集合进行迭代,这里的集合包含List、Set和数组。 |
125 | < s:set
name = "list"
value = "{'zhangming','xiaoi','liming'}"
/> |
126 | < s:iterator
value = "#list"
status = "st" > |
127 | < font
color=<s:if test = "#st.odd" >red</ s:if >< s:else >blue</ s:else >> |
128 | < s:property
/></ font >< br > |
130 | value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。 |
132 | status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法: |
133 | intgetCount(),返回当前迭代了几个元素。 |
134 | intgetIndex(),返回当前迭代元素的索引。 |
135 | booleanisEven(),返回当前被迭代元素的索引是否是偶数 |
136 | booleanisOdd(),返回当前被迭代元素的索引是否是奇数 |
137 | booleanisFirst(),返回当前被迭代元素是否是第一个元素。 |
138 | booleanisLast(),返回当前被迭代元素是否是最后一个元素。 |
142 | < s:set
name = "age"
value = "21"
/> |
146 | < s:elseif
test = "#age==21" > |
155 | < s:url
action = "test"
namespace = "/tag"
var = "add" > |
156 | < s:param
name = "username" >laowangang</ s:param > |
157 | < s:param
name = "id" >12</ s:param > |
159 | < s:a
href = "%{add}" >测试URL</ s:a > |
160 | < s:a
action = "test"
namespace = "/tag" ></ s:a > |
164 | pageContext.setAttribute("birth",newDate(200,03,10),PageContext.REQUEST_SCOPE); |
166 | < s:date
name = "#request.birth"
format = "yyyy年MM月dd日" /> |
167 | < s:date
name = "#request.birth"
nice = "true" /> |
174 | < s:form
action = "test"
namespace = "/tag" > |
175 | < s:textfield
label = "用户名"
name = "uname"
tooltip = "你的名字"
javascriptTooltip = "false" ></ s:textfield > |
176 | < s:textarea
name = "rmake"
cols = "40"
rows = "20"
tooltipDelay = "300"
tooltip = "hi"
label = "备注"
javascriptTooltip = "true" ></ s:textarea > |
177 | < s:password
label = "密码"
name = "upass" ></ s:password > |
178 | < s:file
name = "file"
label = "上传文件" ></ s:file > |
179 | < s:hidden
name = "id"
value = "1" ></ s:hidden > |
183 | <optionvalue="listKey">listValue</option> |
185 | < s:select
list = "#{'1':'博士','2':'硕士'}"
name = "edu"
label = "学历"
listKey = "key"
listValue = "value" ></ s:select > |
187 | < s:select
list = "{'java','.net'}"
value = "java" ></ s:select > <!--value是选中的--> |
190 | < s:checkbox
label = "爱好"
fieldValue = "true"
name = "checkboxFiled1" ></ s:checkbox > |
193 | < s:checkboxlist
list = "{'java','css','html','struts2'}"
label = "喜欢的编程语言"
name = "box"
value = "{'css','struts2'}" ></ s:checkboxlist > |
197 | < s:checkboxlist
list = "#{1:'java',2:'css',3:'html',4:'struts2',5:'spring'}"
label = "喜欢的编程语言"
name = "boxs"
value = "{1,2}" ></ s:checkboxlist > |
203 | <inputtype="text"name="boxs"value="listKey">显示值listValue |
209 | pageContext.setAttribute("sex","男",PageContext.REQUEST_SCOPE); |
210 | pageContext.setAttribute("sex1","男",PageContext.REQUEST_SCOPE); |
212 | < s:radio
list = "{'男','女'}"
name = "sex"
value = "#request.sex" ></ s:radio > |
215 | < s:radio
list = "#{1:'男',2:'女'}"
name = "sex1"
listKey = "key"
listValue = "value"
value = "#request.sex1" ></ s:radio > |
220 | < s:submit
value = "提交" ></ s:submit > |
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理