我的jsp页面中有两个struts2选择框。第一个选择框由一个对象填充,该对象的值在服务器端设置。
这个对象有两个要素:
String softwareName;
Map<String,String> versionList;
第一个选择框由此对象填充。此选择框的Listkey属性使用此选择框的versionList和ListValue使用softwareName。像这样:
<s:select name="listSoftware" list="listSoftware" listkey="versionList" listvalue="softwareName">
所以html中的选择框变成这样:
<select name="listSoftware">
<option value="DummySoftware-1.0.0=1.0.0,DummySoftware-2.0.0=2.0.0,DummySoftware-3.0.0=3.0.0">DummySoftware</option>
<option value="TestSoftware-4.0.0=4.0.0,TestSoftware-5.0.0=5.0.0,TestSoftware-6.0.0=6.0.0">TestSoftware</option>
<option value="CheckSoftware-7.0.0=7.0.0,CheckSoftware-8.0.0=8.0.0,CheckSoftware-9.0.0=9.0.0">CheckSoftware</option>
</select>
现在我想根据从第一个选择框中选择的软件填充第二个选择框。例如,如果用户从第一个选择框中选择DummySoftware,则应在第二个选择框中填充相应版本的DummySoftware,即1.0.0,2.0.0和3.0.0。
有人可以帮忙怎么做吗?
答案 0 :(得分:1)
这样的东西就是你想要的,但是你要做的就是从一个中获取验证,然后使用现在预先填充的版本再次生成你的result.jsp。所以基本上添加一个jsp。 http://www.mkyong.com/struts2/struts-2-sselect-drop-down-box-example/
答案 1 :(得分:1)
您可以使用doubleselect
<强>动作强>
private List<BeanFirst> lstFirst = new ArrayList<BeanFirst>();
public String execute() {
List<BeanSecond> lstSecond = new ArrayList<BeanSecond>();
lstSecond.add(new BeanSecond(1, "sec1"));
lstSecond.add(new BeanSecond(2, "sec2"));
List<BeanSecond> lstSecond2 = new ArrayList<BeanSecond>();
lstSecond2.add(new BeanSecond(3, "sec3"));
lstSecond2.add(new BeanSecond(4, "sec4"));
BeanFirst f1 = new BeanFirst(1, "name1", lstSecond);
BeanFirst f2 = new BeanFirst(22, "name2", lstSecond2);
lstFirst.add(f1);
lstFirst.add(f2);
return SUCCESS;
}
<强> BeanFirst.java 强>
public class BeanFirst
{
private Integer id;
private String name;
private List<BeanSecond> lst;
//Getters & Setters
}
<强> BeanSecond.java 强>
public class BeanSecond
{
private Integer id;
private String name;
//Getters & Setters
}
<强> JSP 强>
<s:doubleselect list="lstFirst" listKey="id" listValue="name" name="idfirst" doubleList="lst" doubleName="idsecond" doubleListKey="id" doubleListValue="name" label="Double Select Here"/>