当前位置: 代码迷 >> Web前端 >> struts2标签引见
  详细解决方案

struts2标签引见

热度:97   发布时间:2012-11-22 00:16:41.0
struts2标签介绍

关于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的官方网站。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

??

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  相关解决方案