2015-09-22 86 views
0

我有一張桌子,在那裏我會有多行輸入文本框。在編輯時,我可以編輯這些值,這些編輯的值必須在點擊提交按鈕後保存。我有一個在我的表單bean中定義的列表變量,這個列表在輸入變量的路徑中使用。我能夠在我的控制器中獲取列表值,但它有一個問題。每次迭代後,該列表必須重新初始化,以便這些值不會附加在同一列表中。例如:對於迭代1,我有10個輸入文本,我只需要提交。但是現在所有的值都會附加到同一個列表中。從多種形式檢索值:輸入到彈簧控制器

這是我的JSP形式:

<form:form id="fee" method="post" modelAttribute="clientForm" commandName = "clientForm" 
action="<%= request.getContextPath().toString()%>/addFee.do"> 

    <TABLE> 
      <tr> 
       <c:forEach var="type" items="${clientInfo}" varStatus="status"> 
        <td><form:checkbox class="editable${ifeeCount}" path="includeFeeValue" value="false"/> </td> 
         <td>feeType<c:out value = "${status.index}"/></td> 
         <td>Source Fee<c:out value = "${status.index}"/></td> 
         <td><form:input class="editable${ifeeCount}" disabled="true" path="overriddenFee" /></td> 
          <td><form:errors path="overriddenFee" cssClass="error" /></td> 
       </c:forEach> 
      </tr> 
    </TABLE> 

這是在我的控制器代碼檢索從列表中值:

@RequestMapping(value="/addFee.do",method = RequestMethod.POST) 
protected @ResponseBody ModelAndView selectValues(@ModelAttribute("clientForm") MyForm MyForm) throws Exception { 

    MyForm = new MyForm(); 

    if(null != MyForm.getOverriddenFee() && MyForm.getOverriddenFee().size() > 0) { 
     for(int k=0;k<MyForm.getOverriddenFee().size();k++){ 
      if(MyForm.getOverriddenFee().get(k) != " ") 
       System.out.println("Overridden fee : "+MyForm.getOverriddenFee().get(k)+ " of "+k); //Should print only 10 values for the 10 input text boxes I've in that iteration 
     } 
    } 

如何reinitalize名單?

回答

-1

您可以清除列表並將其傳回表單。

+0

我該怎麼做?所有的行將被填充到一起。而且我沒有初始化控制器或表單bean中的列表。它只是通過路徑變量以下面的形式訪問:輸入。 – JaveDeveloper