0

当我在 jsp 中保持两个输入名称相同时。我希望他们应该以两个不同的对象进入控制器。@模型属性

@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>

请告诉我如何将两个具有相同地址实体的对象从 jsp 发送到控制器的解决方案,为输入类型的属性“名称”保持相同的值。

在给定的场景中,我正在获取对象,但它包含两个地址的值,由“,”(逗号)分隔。

4

3 回答 3

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;
}

和地址类如下。

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

    // Getters and setters for the fields.
}

在您的 jsp 中,您需要使用 spring form taglib 并绑定 personalAddress 字段和 billingAddress 字段。

例如。和

在控制器中,您需要将 AddressDataBean 定义为 @ModelAttribute。

编辑

您可以在UserInfoEntity bean 中拥有 personalAddress 和 billingAddress 属性。后来我意识到了。:)

希望这对您有所帮助。

于 2012-10-30T09:09:25.243 回答
0

我们可以在文档中找到它,只需阅读有关嵌套属性的部分即可。

对于提供的情况,您需要正确设置字段名称:

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

其余的也一样。

于 2012-11-01T13:27:49.130 回答