1.第一种:
<s:select list="{'aa','bb','cc'}" headerKey="00" headerValue="0"></s:select>
2.第二种:
<s:select list="#{1:'aa',2:'bb',3:'cc'}" label="abc" listKey="key" listValue="value" headerKey="0" headerValue="-1">
3.第三种(从数据库读数据)
act
public class ServiceRelease {
private ProvidingService ps;
private List<ProvidingService> listPS = new ArrayList<ProvidingService>();
生成get()/set()方法
public String getServiceRelease(){//act
listPS = serviceManageService.getService(); //getService(); 是我查询数据库所有服务的方法
return "test"; //通过struts2跳转页面
}
}
struts2.xml文件中:
<package name="servicemanage" extends="default" namespace="/servicemanage">
<act
<result name="test">
/testList.jsp <!--跳到testList.jsp页面-->
</result>
</package>
testList.jsp页面:
<body>
<s:act
<s:select headerValue="--Please select--" headerKey="0"
list="#bean.listPS" name="" listKey="id" listValue="serviceName"></s:select>
</body>
***注意引入struts2的标签库
<%@ taglib prefix="s" uri="/struts-tags"%>
解析上面的代码:
<s:select>标签,解释下这个标签属性:
(1)struts2中的select 标签中,必须设置的属性只有一个,即是list。
(2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, headerValue,这样就可以通过了。
headerValue :
默认值value
headerKey :
默认name
即使list中有值,我们也通常会加上headerKey, headerValue,即列表中显示的第一个选项。注意,headerKey不可以为空,不可以为-1
list :
通常是在act
name : 被选数据存放的位置(act
listKey : 下拉选项的name
listValue : 下拉选项的value
listKey即对应于普通select标签中的value值, listValue即对应于普通select标签中的option所显示的值
value : 默认值
一个下拉列表往往是可以重复使用的,那么我们将它单独定义到一个act
name : 源数据名(这里我的为 servicerelease!getServiceRelease ,也就是 名称空间!act
namespace : 我们在struts.xml中定义的name(我定义的为 servicerelease)
id : 相当于别名(在后面调用该actiond的时候直接用#号使用)