1

Java Struts環境で2つのリストボックス(複数)を使用したい。最初のリストボックスには個人名がリストされ、2番目のリストボックスは最初は空白です。追加ボタンと削除ボタンを使用して、選択した最初のリストボックスの値で2番目のリストボックスを埋めます。しかし、私はこれを使用する方法がわかりませんか?

値は文字列配列またはゲッター/セッターへのコレクションですか?とどのように使用するのですか?

さらに、私はjavascriptコードがどのように作成されているかを知っていますが、支柱は複雑です。

私のコードは:

JSP:

最初のリストボックスと2番目のリストボックス

< 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 に答える