2011-09-30 168 views
10

我想在下面的代碼中使用彈簧隱藏標籤。這是可能的在下面的代碼,我必須寫在我的控制器來做到這一點或我所做的是正確的。春季隱藏字段MVC

<c:forEach var="record" items="${records}"> 
    <tr> 
     <td> 
      <form:form id="myForm" action="list.html" method="post"> 
       <input type="hidden" name="record" value="${record}" /> 
       <a href="#" onclick="document.getElementById('myForm').submit();">Submit</a> 
      </form:form> 
     </td> 
    </tr> 
</c:forEach> 

任何幫助將高度appriciated。

感謝

+0

是你的問題是否以及如何將該字段綁定回表單? – tolitius

+0

是的,我認爲,你可以看到,我在這裏使用循環和隱藏變量將填充循環的運行時間,所以如果我使用那麼我認爲記錄不會填充。所以我的問題是我必須寫在我的控制器,以便它與我從循環中獲取的值綁定。 – user965884

回答

14

你是在正確的軌道上[根據您的支持bean是什麼],但爲了在提交的ID綁定爲一個隱藏字段自動到「人」的bean(在此例如),你會做這樣的事情:

<c:forEach var="person" items="${persons}" varStatus="status"> 
    <tr> 
     <c:set var="personFormId" value="person${status.index}"/> 
     .... 
     <form id="${personFormId}" action="${deleteUrl}" method="POST"> 
      <input id="id" name="id" type="hidden" value="${person.id}"/> 
     </form> 

     <td>${person.firstName}</td> 
     <td>${person.lastName}</td> 
     .... 
    </tr> 
</c:forEach> 

如果你想呈現隱藏字段,你可以使用一個form:hidden標籤:

<form:hidden path="id" /> 

看看春節文檔的Hidden Input Tag部分。

2

在這個答案的其餘部分,替代「刪除」和「deteted」與您正試圖執行的操作。例如,「爆炸」,「咬」或「編輯」

您發佈的JSP代碼中有幾個問題。

  1. 對於<td>元素沒有關閉標記。
  2. 您的表單發佈到「items.html」。這似乎是一個HTML頁面。如果是這樣,你的表單動作是正確的0%。
  3. 各種形式具有相同的ID,所以getElementById()電話不能正常工作。
  4. href="#"會導致你的頁面,當用戶點擊該鏈接滾動到頂部。
  5. 您不會向用戶識別要刪除的記錄。

這是我想你想:

<c:forEach var="record" items="${records}"> 
    <tr> 
     <td> 
      <form:form method="post"> 
       <input type="hidden" name="activity" value="delete"/> 
       <input type="hidden" name="record" value="${record}"/> 
       <a href="javascript:this.form.submit()">Delete ${record}</a> 
      </form:form> 
     <td> 
    </tr> 
</c:forEach> 

的片段將張貼到當前彈簧控制器。該帖子中包含兩個字段:「活動」,將其標識爲刪除,「記錄」標識要刪除的記錄。根據您的需求,將添加到form:form標籤。

2

我想我解決了這個問題。如果我寫這樣的

<form:hidden path="id" value="${record}" /> 
這樣

輸入標籤,我可以重新分配隱變量的值,但是當我看着呈現的HTML代碼,它是這樣

<input type="hidden" value="0" name="record" value="10"/> 

生成屬性的值兩次,獲得我想要的價值是10.但它解決了我的問題。如果有人對此有進一步評論,那麼將不勝感激。

+0

使用Spring 1.4.0和它呈現'