2013-04-28 61 views
0

我認爲我的語法是正確的,但我的表單支持對象中的列表沒有被填充。它看起來像列表本身正在制定,只是它沒有元素。其他屬性正在按預期填充。有任何想法嗎?Spring 3綁定對象到列表

JSP:

<form:form method="post" commandName="addReminder"> 
    Reminder Name <input type='text' name='reminderName' placeholder="Reminder Name"> <br /> 
    Date   <input type='text' name='date' placeholder="1/05/2013"> <br /> 
    Time   <input type='text' name='time' placeholder="4:00 PM"> <br /> 
    Time Zone  <input type='text' name='timeZone' placeholder="EDT"> <br /> 
    <br /> 
    Contacts <input type='text' path="contacts[0].phoneNumber" placeholder="Name"> <br /> 
       <input type='text' path="contacts[1].phoneNumber" placeholder="Name"> <br /> 

       <input type="submit" value = "Add Reminder"> 
</form:form> 

控制器:

@RequestMapping(value = "/AddAReminder", method = RequestMethod.POST) 
public String addReminder(@ModelAttribute("addReminder") AddReminder reminder, BindingResult result) 
{ 
      //does stuff with the data from the form backing object 

    return "Add A Reminder"; 
} 

表背襯對象:

public class AddReminder 
{ 
private String reminderName; 
private String date; 
private String time; 
private String timeZone; 
private ArrayList<Contact> contacts = new ArrayList<Contact>(); 
private String sentFrom; 
private String message; 
private String provider; 

//getters and setters 

聯繫對象:

public class Contact 
{ 
private String firstName; 
private String lastName; 
private String phoneNumber; 
private String provider; 

//getters and setters 
+0

好吧,我想出了我做了什麼改變,得到了這個工作。我使用GET請求上的Contact對象初始化列表。我說initalize,但我的意思是我只是添加一個元素到列表中,所以它不是空的。該列表本身已經在AddReminder類中初始化。 Spring將自動增加列表。 – 2013-04-28 22:09:36

回答

0

,你可以使用<c:forEach>爲:

<form:form method="post" commandName="allProductEdit"> 
    <c:forEach items="${allProductEdit.products}" var="prod" varStatus="pStatus"> 
     <form:input path="products[${pStatus.index}].description" /> 
     <form:input path="products[${pStatus.index}].price" /> 
    </c:forEach> 
    <input type="submit" value="Execute"> 
</form:form> 

檢查這個論壇的鏈接http://forum.springsource.org/showthread.php?54509-lt-form-input-gt-inside-lt-c-forEach-gt

+0

對不起,我沒有提到,名單是空的,這就是爲什麼我沒有使用foreach。我試圖從表單的信息中填充空列表,但是在做這件事時遇到了麻煩。 – 2013-04-28 18:42:01

+0

呃確定很奇怪。重新開始eclipse,現在我的列表正在填充。好吧,無論如何,感謝您的鏈接,很好地瞭解更多關於春天。 – 2013-04-28 20:57:21

+0

我不認爲你有問題,如果清單是空的,但如果你遇到這個問題,請使用c:如果首先檢查llistt的大小,如果0不執行c:foreach – 2013-04-28 22:11:58

0

好吧,我想通了什麼樣的變化我做出了這個工作。我使用GET請求上的Contact對象初始化列表。我說initalize,但我的意思是我只是添加一個元素到列表中,所以它不是空的。該列表本身已經在AddReminder類中初始化。 Spring將自動增加列表。