Struts2的doubleselect标签用来生成两个联动的下拉框,当第一个下拉框的选项变化时,第二个下拉框的所有选项会跟随变化,会更新成与第一个下拉框选项相关的一组选项。
比如,常用的省、市联动就可以用doubleselect标签来处理,省作为第一个下拉框,市作为第二个下拉框,当省的选项变化的时候,市的所有选项就跟着变化。
doubleselect标签的重要选项分为2组
控制第一个下拉框名字以及数据来源
name:第一个下拉框的name属性。
list:用于生成第一个下拉框的集合。
listKey:生成第一个下拉框的选项的value属性。
listValue:生成第一个下拉框的选项显示的文字。
headerKey:在第一个下拉框所有的选项前再额外加一个选项作为其标题,headerKey设置的是标题的value属性。
headerValue:在上边下拉框所有的选项前再额外加一个选项作为其标题,headerValue设置的是标题的显示文字。
控制第二个下拉框名字以及数据来源
doubleName:第二个下拉框的name属性。
doubleList:用于生成第二个下拉框的集合。
doubleListKey:生成第二个下拉框的选项的value属性。
doubleListValue:生成第二个下拉框的选项显示的文字。
doubleHeaderKey:在第二个下拉框所有的选项前再额外加一个选项作为其标题,headerKey设置的是标题的value属性。
doubleHeaderValue:在下边下拉框所有的选项前再额外加一个选项作为其标题,headerValue设置的是标题的显示文字。
例子
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form action="/ognlAction.action" method="post">
<s:doubleselect label="请选择省市"
name="province"
doubleName="city"
list="{'北京市','上海市'}"
doubleList="(top=='北京市') ?
{'东城区','西城区'}:{'徐汇区','浦东区'}"
/>
</s:form>
3个省市,继续嵌套三目运算符。
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form action="/ognlAction.action" method="post">
<s:doubleselect label="请选择省市"
name="province"
doubleName="city"
list="{'北京市','上海市','重庆市'}"
doubleList="(top=='北京市') ?
{'东城区','西城区'}:
( top=='上海市'?
{'徐汇区','浦东区'}:{'渝中区','沙坪坝区'}
)"
/>
</s:form>
参考:http://sishuok.com/forum/blogCategory/showByCategory.html?categories_id=81&user_id=5948