0

構文は正しいと思いますが、フォーム バッキング オブジェクトのリストに値が入力されていません。要素がないだけで、リスト自体が作成されているように見えます。他の属性は期待どおりに設定されています。何か案は?

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
4

2 に答える 2

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

于 2013-04-28T08:51:50.513 に答える
0

わかりました、これを機能させるために行った変更を理解しました。GET 要求で Contact オブジェクトを使用してリストを初期化します。初期化と言いますが、リストに要素を追加するだけなので、空ではありません。リスト自体は、AddReminder クラスで既に初期化されています。Spring はリストを自動拡張します。

于 2013-04-28T22:11:57.290 に答える