1

簡単なユーザー登録フォームが 1 つあります。名前、年齢、性別、市区町村が含まれます。しかし、ここでは都市が都市マスターテーブルから来ており、ユーザーをコンボボックスとして表示しています。しかし、UserDAO を介して完全なユーザー登録情報を保存しようとすると、現在選択されている都市の値にどのようにアクセスできますか? 私のユーザー登録jspフォームには以下が含まれます:

<s:form action="UserAction" >
            <s:textfield name="name" label="User Name" />
            <s:textfield name="age" label="Age" />
            <s:radio name="sex" label="Sex" list="{'M','F'}" />

            <s:select list="cities" key="cities.name"  listValue="name">
            </s:select>

        <s:submit />
</s:form>

今、私は UserAction の execute() メソッドを呼び出しています。を含む :

public String execute() throws Exception {
        UserDAO.insert(user);
        return SUCCESS;
    }

私のDAOの挿入メソッドには次のコードがあります:

 public static void insert(UserBean daoUb) throws Exception {
        Connection daoConn = null;
        CityBean cb=new CityBean();
        cb=daoUb.getCity();
        System.out.println("cb = "+cb);
        daoConn = connectionUtil.getConnection();

        Statement daoSt = daoConn.createStatement();
        String str = "INSERT user (name,age,sex,city) VALUES('" + daoUb.getName() + "'," + daoUb.getAge() + ",'" + daoUb.getSex() + "','"+cb.getName()+"')";
        daoSt.executeUpdate(str);
        //daoConn.close();
    }

誰か提案があれば、私に提案してください。私はこの問題で立ち往生しています....

4

2 に答える 2

1

他のフィールドに使用しているものと同様の方法を使用して取得できます。必要なのは、そのフィールドに名前を付けることだけです。

あなたのリストには、あなたのBeanにあるものの正確な名前を、あなたの場合はcityに付けてください。これで動作を開始するはずです。

于 2009-04-07T06:33:38.753 に答える
0

Vinegar が提案するのは、このように jsp を変更することです

<s:select name="city" list="cities" key="cities.name"  listValue="name">
            </s:select>

これは、Bean が既に実装した市のプロパティのゲッターとセッターを持っていることを前提としています。

于 2009-04-08T20:01:57.663 に答える