2012-01-29 43 views
1

我有一個頁面,其中包含一個表單支持對象,其中包含我在頁面上循環的集合屬性。我想給用戶通過點擊刪除按鈕來刪除集合項目的選項。但是我不知道在控制器中按下了哪個刪除按鈕,因爲集合中的每個項目都有一個刪除按鈕。基本上我需要知道哪個刪除按鈕被按下,所以我知道什麼問題ID應該被刪除。什麼是最好的方式去做這件事?請參閱我下面的頁面:Spring Form提交以刪除集合項目

<%@ include file="/WEB-INF/jsp/taglibs.jsp" %> 

<sf:form method="POST" modelAttribute="surveyInfo" > 

<table id="glossarysearchtable-full" border="0" cellpadding="0" cellspacing="0">    
      <tr align="left"> 
       <td class="searchResultTitle" colspan="2"> 
        Schedule Number ${surveyInfo.surveyNumSch}      
        <input type="submit" class="small-short inner2" value="Save" alt="Save" title="Save" /> 
        <input type="button" class="small-short inner2" value="Print" alt="Print" title="Print" /> 
        <input type="button" class="small-short inner2" value="Remove" alt="Remove" title="Remove" /> 
        <sf:input type="hidden" path="id" id="id" cssClass="inputbox-survey" maxlength="100" size="100" /> 
        <sf:input type="hidden" path="surveyTitle" id="surveyTitle" cssClass="inputbox-survey" maxlength="100" size="100" /> 
        <sf:input type="hidden" path="surveyName" id="surveyName" cssClass="inputbox-survey" maxlength="100" size="100" /> 
      </tr>         

      <c:forEach items="${surveyInfo.allSurveyQuestions}" var="surveyQuestion" varStatus="status"> 

        <tr align="left"> 
         <td class="searchResultTitle" colspan="2"> 
          Question ${status.count} <input type="submit" class="small-short inner2" value="Remove${status.count}" alt="Remove" title="Remove" /> 
          <sf:input type="hidden" path="allSurveyQuestions[${status.index}].questionId" id="questionId${status.count}" cssClass="inputbox-survey" maxlength="100" size="100" /> 
          <sf:input type="hidden" path="allSurveyQuestions[${status.index}].id" id="id${status.count}" cssClass="inputbox-survey" maxlength="100" size="100" /> 
         </td> 

        </tr>  

        <tr class="altrow" align="left"> 
         <td height="20">Text:</td> 
         <td><sf:input path="allSurveyQuestions[${status.index}].questionText" id="questionText${status.count}" cssClass="inputbox-survey" maxlength="100" size="100" /></td> 
        </tr> 

      </c:forEach> 
</table>  
</sf:form> 
+0

你有沒有想過使用jQuery Ajax刪除點擊的項目?如果你走這條路線,你可以使用單擊元素的id,並將該id發送到後端並將其刪除。 – Stealth 2012-01-30 13:21:14

回答

1

嗯,我解決我的問題,我所做的就是創建了一個在我的域對象稱爲請將isDeleted屬性,這也是我的表單支持對象,並創建了一個綁定的複選框在頁面上的每條記錄。如果用戶單擊複選框或複選框並單擊保存,控制器將檢查複選框的值併爲toBeSaved填充2個不同的集合,另一個用於toBeDeleted。未檢查的記錄被保存並且檢查的記錄從數據庫中被刪除。

我在網上看到很多選擇,通過jQuery路由來做到這一點,但我仍然在學習jQuery,並且傾向於在服務器端進行。