Struts 2 中的标签介绍
最近在做一个下拉框时,一开始使用循环迭代,后来发现有struts2的<s:select>标签 学习下、
1.<c:forEach>
在action 层 request.setAttribute("list",list);
在jsp
<select id="queryObjectId" name="queryObjectId"> <option value="">--请选择--</option> <c:forEach items="${listHealthSystem}" var="list" varStatus="status"> <option value='${list.systemId}'>${list.systemName}</option> </c:forEach> </select>
2.<s:select>
在action层 写一个返回值为List<?> 类型的 public 方法 (list内存放着要展示的数据)
public List<HealthSystem> getHealthSystemList(){ return healthSystemService.getHealthSystemList(); }
在jsp
<s:select id="healthSystemId" name="healthSystemId" list="healthSystemList" listKey="id" listValue="healthSystemName" value="#request.healthSystemName"> </s:select>
ok了。
上面是我在做东西时的代码。
下面介绍<select>的属性。
首先你要用到select,可以只使用 <s:select>标签,解释下这个标签属性:
headerValue : 默认值value
headerKey : 默认name
list : 源数据 (可以在action方法里从数据库获取list)
name : 被选数据存放的位置(这里我方在对象obj的属性值userName中<需在action中定义该对象>)
listKey : 下拉选项的name
listValue : 下拉选项的value
value : 默认值
但是一个下拉列表往往是可以重复使用的,那么我们将它单独定义到一个action中,这里我的action的namespace是system,所以如我们上面定义的<s:action>标签:
name : 源数据名(对应get方法名)
namespace : 我们在struts.xml中定义的name
id : 相当于别名(在后面调用该actiond的时候直接用#号使用)
struts2的select标签中,常用的有以下几个属性:
(1)struts2中的select 标签中,必须设置的属性只有一个,即是list。
(2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, headerValue,这样就可以通过了。如:
<s:select name="geElement.childType" list="childTypeList" listKey="key" listValue="value" headerKey="0" headerValue="--请选择子类型--"/>
其中,即使list中有值,我们也通常会加上headerKey, headerValue,即列表中显示的第一个选项。注意,headerKey不可以为空,不可以为-1。
(3)list属性:通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,那么map的key就对应于select标签中的value,map中的value就对应于select标签中的option。而如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。
(4)listKey和listValue:listKey即对应于select标签中的value, listValue即对应于select标签中的option。
(5)name属性:即是表单中select的名称。
列子:
1.第一个例子:
<s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00" headerValue="00"></s:select>
2.第二个例子:
<s:select list="#{1:'aa',2:'bb',3:'cc'}" label="abc" listKey="key" listValue="value" headerKey="0" headerValue="aabb">
就到这吧。。。vv
上一篇: 利用UML进行简单的面向对象分析