1

我想在 java struts 环境中使用两个列表框(多个)。第一个列表框列出了人员姓名,第二个列表框最初是空白的。使用添加和删除按钮用选定的第一个列表框中的值填充第二个列表框。但我不知道如何使用这个?

值是字符串数组还是 getter/setter 的集合?以及如何使用?

此外,我知道 javascript 代码是如何制作的,但 struts 很复杂。

我的代码是:

JSP:

第一个列表框和第二个列表框

< td class="formitem">
    < html:select multiple="true" size="4" styleClass="textField" >
        < html:options collection="pName" property="deger" labelProperty="pers"/>
    </html:select>
</td>

 <td class="formitem">
    <html:select property="personelName" styleClass="textField" >
        <html:options collection="personelList" property="deger" labelProperty="xxx"/>
    </html:select>  
 </td>

我的表单代码是

private String[] pName = null;  is string array or another type?

public String[] getpName() {
    return pName;
}

public void setpName(String[] pName) {
    this.pName = pName;
}

模型类

public static Collection personelFill(String x) {
    {
        Connection connection = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        ArrayList personelList = null;


        try {
            connection = DBFactory.getConnection();
            String sql = 
                    "select  p.adi || ' ' || p.soyadi isim, p.tckimlikno , p.subeno, p.daireno " +
                    "from personel p " +
                    "where p.listedegorunsun = 1 "
                + x
                + "order by nlssort(p.adi||' '||p.soyadi,'NLS_SORT = TURKISH')";

            pst = DBFactory.getPreparedStatement(connection, sql);

            rs = pst.executeQuery();
            personelList = new ArrayList();

            PersonelForm pForm = null;

            while (rs.next()) {

                pForm = new PersonelForm();

                //fill form setter


                personelList.add(pForm);
            }

            return personelList;

        } catch (Exception e) {
            throw new BDException(e.getMessage());
        } finally {
            DBFactory.closeConnection(connection, pst, rs);
        }

    }
}
4

1 回答 1

0

与服务器端无关。可以使用 javascript 或 jquery 在客户端完成,请参阅以下 jsfiddle 和原始帖子

http://jsfiddle.net/RbLVQ/62/

 $('#btnRight').click(function(e) {
    var selectedOpts = $('#lstBox1 option:selected');
    if (selectedOpts.length == 0) {
        alert("Nothing to move.");
        e.preventDefault();
    }

    $('#lstBox2').append($(selectedOpts).clone());
    $(selectedOpts).remove();
    e.preventDefault();
});
于 2013-03-01T10:59:05.790 回答