关于struts2的标签,可以大致分为条件,迭代,UI标签这几类,由于struts2结合了ognl表达式,从而增添了struts2标
?
签使用的灵活性。
?
?
?
struts2 条件表达式 <s:if> ,<s:elseif>,<s:else>
?
eg:? <s:set name="age" value="70"/>
?
<s:if test="${age > 60}">
??? 老年人
</s:if>
<s:elseif test="${age > 35}">
??? 中年人
</s:elseif>
<s:elseif test="${age > 15}" id="wawa">
??? 青年人
</s:elseif>
<s:else>
??? 少年
</s:else>
?
?
如果是从request对象中获取变量值,可以采用表达式。
‘
<s:set name="name" value="<%="'"+ request.getParameter("name")+"'" %>"/>
?
<s:if test="#name==zhangsan">
? zhangsan here
</s:if>
<s:elseif test="#name=='lisi'">
? lisi here
</s:elseif>
<s:else>
? other is here
</s:else>
?
?
2.struts2迭代标签
?
?s:iterator 标签有3个属性:
??? ?value:被迭代的集合。
???? id??:指定集合里面的元素的id。
???? status :迭代元素的索引。
?
?
eg: <s:iterator?value="{'1','2','3','4','5'}"?id='number'>
????????? <s:property?value='number'/>A
?????? </s:iterator>
?
?
?索引使用
?
int getCount()返回当前迭代了几个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第一个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数
eg: <s:iterator?value="{'a','b','c'}"?id='char'?status='st'>
?????<s:if?test="#st.Even">
?????????现在的索引是奇数为:<s:property?value='#st.index'/>
?????</s:if>
?????当前元素值:<s:property?value='char'/>
?</s:iterator>
?
遍历map集合
?
<s:iterator?value="map"?id="id"?status="st">
??????key?:?<s:property?value='key'/>
??????value:<s:property?vlaue='value'/>
</s:iterator>
?
key 和value 都可以使java 的 Object
?
?
struts中的UI标签包含了许多,例如<s:form>,<s:select>,<s:radio>,<s:checkbox>等等。
?
这里介绍几个比较常用的
?
<s:select>
?
<s:select> 该标签包含的属性如下:
?
?list :?需要迭代的集合,使用集合中元素来设置各个项,如果list属性为map,则map的key成为项的value,map中的v
?
value会成为项的内容。
?
?
listkey??:?指定集合对象中的哪个属性项为项的value。
?
?
listValue : 指定集合对象中的哪个属性作为项的内容。
?
?
headerKey : 设置当用户择了header项时,提交的的value,如果使用该属性,不能为该属性设置空值。
?
emptyOption :是否在header项后面添加一个空选项。
?
multiple :?? 是否多选。
?
size :? 显示的项个数。
?
eg : <s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"
?????? headerKey="-1" headerValue="请择您的学历"
?????? emptyOption="true"/>
?
使用多选的实例
?
eg : <s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"
?????? headerKey="-1" headerValue="请择您的学历"
?????? emptyOption="true"
?????? multiple="true" size="8"/>
?
?
利用Action实例属性
eg:
<s:select label="最高学历" name="education" list="educations"
?????? listKey="id" listValue="name"/>
?
?
<s:doubleselect>多选标签
doubleselect标签输出关联的两个HTML列表框,产生联动效果。
?
eg :
<s:doubleselect label="请选择所在省市" doubleList="top=='四川省'?{'成都市','绵阳市'}:{'济南市','青岛市'}" list="{'四川省','山东省'}" doubleName="city"></s:doubleselect>
?
详细的使用该标签,可以参考博客:http://blog.csdn.net/zq9017197/article/details/5955945。
?
?
复选框
?
<s:checkboxlist >
?
常用属性说明:
?
list :要迭代的集合,使用集合中的元素来设置各个项,如果list的属性为Map则Map的key成为项的value,Map的
?
value会成为项的内容。
?
?
listKey :指定集合对象中的哪个属性作为项的value 。
?
listvalue : 指定集合对象中的哪个属性作为项的内容。
?
<s:checkboxlist name="interest" list="{'足球','篮球','排球','游泳'}" label="兴趣爱好"/>
?
?
大致介绍了基本的struts的标签,如果需要了解更多的struts2标签的使用,可以参考struts2的官方网站。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?