0

jspで2つの入力名を同じにしているとき。私はそれらが2つの異なるオブジェクトのコントローラーに来るべきだと思っています。@モデル属性

@RequestMapping(value = "/addUser", method = RequestMethod.POST)
public String addAdvertiser(@ModelAttribute("userInfoEntity") UserInfoEntity userInfoEntity,@ModelAttribute("addressEntity") AddressEntity personalAddress,@ModelAttribute("addressEntity") AddressEntity billingAddress){
// save this two address to my userInfo Entity 
// here i had one to many relationaship. from UserInfoEntity to AddressEntity
}

私のJSPは次のとおりです。

Personal Address
<div class="label"><b>Address 1 :</b></div>
                        <div class="leftSide"><input type="text" name="address1" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>City :</b></div>
                        <div class="leftSide"><input type="text" name="city" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>Zipcode :</b></div>
                        <div class="leftSide"><input type="text" name="zipcode" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>Address 2 :</b></div>
                        <div class="leftSide"><input type="text" name="address2" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>State :</b></div>
                        <div class="leftSide"><input type="text" name="state" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>Phone :</b></div>
                        <div class="leftSide"><input type="text" name="phone" class="textBox" style="width:250px;" /></div>




Billing Address
                        <div class="label"><b>Address 1 :</b></div>
                        <div class="leftSide"><input type="text" name="address1" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>City :</b></div>
                        <div class="leftSide"><input type="text" name="city" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>Zipcode :</b></div>
                        <div class="leftSide"><input type="text" name="zipcode" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>Address 2 :</b></div>
                        <div class="leftSide"><input type="text" name="address2" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>State :</b></div>
                        <div class="leftSide"><input type="text" name="state" class="textBox" style="width:250px;" /></div>

                        <div class="label"><b>Phone :</b></div>
                        <div class="leftSide"><input type="text" name="phone" class="textBox" style="width:250px;" /></div>

入力タイプの属性「name」に同じ値を保持したまま、jsp からコントローラーに同じ AddressEntity の 2 つのオブジェクトを送信する方法を教えてください。

指定されたシナリオでは、オブジェクトを取得していますが、「,」(コンマ) で区切られた両方のアドレスの値が含まれています。

4

3 に答える 3

0

We can find it in documentation, just read section about nesting properties.

For provided case you need to set field names properly:

user.address[0].city
user.address[1].city
user.address[2].city

and same for the remaining.

于 2012-11-01T13:27:49.130 に答える
0

名前が同じ場合、オブジェクトの配列が返されます。そのため、印刷しようとすると、カンマ区切りの文字列が表示されます。

オブジェクトを戻り値の型の配列にキャストする必要があります(おそらくあなたの場合は文字列)。値 arr[0] および arr[1] を取得します。

于 2012-10-30T08:20:53.487 に答える
0

次のように作成する必要がありAddressDataBeanます。

public class AddressDataBean {
    private Address personalAddress;
    private Address billingAddress;

    // Getters and Setters for the properties;
}

そして、以下のような Address クラス。

public class Address {
    // All the address fields those are in your jsp.

    // Getters and setters for the fields.
}

jsp では、Spring フォームの taglib を使用して、personalAddress フィールドとbillingAddress フィールドの両方をバインドする必要があります。

例えば。と

コントローラでは、AddressDataBean を @ModelAttribute として定義する必要があります。

編集

UserInfoEntity Beanには、personalAddress およびbillingAddress プロパティを含めることができます。あとで気づきました。:)

これがお役に立てば幸いです。

于 2012-10-30T09:09:25.243 に答える