2012-10-30 52 views
0

當我在jsp中保持兩個輸入名稱相同時。我希望他們應該來兩個不同的對象來控制器。 @ModelAttribut從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> 

請告訴我你的解決方案,我怎麼能發送相同AddressEntity的兩個對象從JSP到控制器保持相同的值屬性「名」的輸入類型。

在給定的senario我得到的對象,但它包括兩個地址的值,「,」(逗號)分離。

回答

0

我們可以在文檔中找到它,只需閱讀有關嵌套屬性的部分。

對於提供情況下,你需要正確設置字段名稱:

user.address[0].city 
user.address[1].city 
user.address[2].city 
對剩餘

和相同的。

0

如果名稱相同,它會返回一個對象數組,這就是爲什麼當您嘗試打印它時,它顯示逗號分隔的字符串。

您需要轉換對象到您的返回類型(可能 串在你的情況下)的陣列。並得到值arr [0]和arr [1]。

+0

感謝您的回覆。我不能在控制器中獲得AddressEntity類的兩個不同對象... –

+0

可以從jsp獲取控制器中的兩個或多個不同的地址對象嗎? –

+0

是的,但他們應該被設置爲jsp上的不同屬性 –

0

您需要創建AddressDataBean,如下所示。

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

    // Getters and Setters for the properties; 
} 

And Address class如下。

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豆的personalAddress和billingAddress性能。我後來意識到它。 :)

希望這可以幫助你。

+0

感謝您的回覆..讓我試試這個.. –

+0

實際上可以有多個帳單地址給一個用戶。以及我應該在jsp中寫入以獲取控制器中的地址值。 –

+0

可以從jsp中獲取控制器中的兩個或多個不同的地址對象。 –

相關問題