当我在jsp中保持两个输入名称相同时。我希望他们应该在两个不同的对象中来到控制器。 @ModelAttribut
@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向控制器发送两个相同AddressEntity的对象,为输入类型的属性“name”保留相同的值。
在给定的Senario中,我得到的是对象,但它包含两个地址的值,以“,”(逗号)分隔。
答案 0 :(得分:0)
如果名称相同,它将返回一个对象数组,这就是为什么当您尝试打印它时,它会显示逗号分隔的字符串。
您需要将对象强制转换为返回类型的数组(可能 在你的情况下字符串)。并获取值arr [0]和arr [1]。
答案 1 :(得分: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并绑定个人地址字段和billingAddress字段。
例如。和
在控制器中,您需要将AddressDataBean定义为@ModelAttribute。
修改强>
您可以在 UserInfoEntity bean中拥有personalAddress和billingAddress属性。我后来意识到了。 :)
希望这会对你有所帮助。
答案 2 :(得分:0)
我们可以在文档中找到它,只需阅读有关嵌套属性的部分。
对于提供的案例,您需要正确设置字段名称:
user.address[0].city
user.address[1].city
user.address[2].city
和剩下的一样。