1

我的 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。

任何人都可以帮助如何做到这一点?

4

2 回答 2

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"/>
于 2013-10-21T22:35:59.920 回答
1

像这样的东西是你想要的,但你想要做的是从一个验证,然后生成你的 result.jsp,其中两个选择再次使用现在预填充的版本。所以基本上添加一个jsp到这个。http://www.mkyong.com/struts2/struts-2-sselect-drop-down-box-example/

于 2013-10-21T19:27:12.040 回答