Java Spring表单提交以删除集合项

Java Spring表单提交以删除集合项,java,forms,spring-mvc,controllers,Java,Forms,Spring Mvc,Controllers,我有一个页面,它有一个表单支持对象,该对象包含一个集合属性,我在页面上循环使用该属性。我想让用户通过单击删除按钮来删除集合中的项目。但是我不知道控制器中按下了哪个删除按钮,因为集合中的每个项目都有一个删除按钮。基本上我需要知道哪个删除按钮被按下,所以我知道什么问题id应该被删除。最好的办法是什么?请参阅下面的我的页面: <%@ include file="/WEB-INF/jsp/taglibs.jsp" %> <sf:form method="POST" modelAtt

我有一个页面,它有一个表单支持对象,该对象包含一个集合属性,我在页面上循环使用该属性。我想让用户通过单击删除按钮来删除集合中的项目。但是我不知道控制器中按下了哪个删除按钮,因为集合中的每个项目都有一个删除按钮。基本上我需要知道哪个删除按钮被按下,所以我知道什么问题id应该被删除。最好的办法是什么?请参阅下面的我的页面:

<%@ 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>

计划编号${surveyInfo.surveyNumSch}
问题${status.count}
正文:

我解决了我的问题,我在我的域对象中创建了一个名为isDeleted的属性,它也是我的表单支持对象,并为页面上的每条记录创建了一个绑定复选框。如果用户单击复选框并单击“保存”,控制器将检查复选框的值并填充两个不同的集合,一个用于保存,另一个用于删除。未选中的记录将被保存,已选中的记录将从数据库中删除


我在web上看到了许多通过jquery路由实现这一点的选项,但我仍在学习jquery,更喜欢在服务器端实现它。

我解决了我的问题,我所做的是在我的域对象中创建了一个名为isDeleted的属性,它也是我的表单支持对象,并为页面上的每个记录创建了一个绑定复选框。如果用户单击复选框并单击“保存”,控制器将检查复选框的值并填充两个不同的集合,一个用于保存,另一个用于删除。未选中的记录将被保存,已选中的记录将从数据库中删除


我在web上看到了很多通过jquery路线来实现这一点的选项,但我仍在学习jquery,更喜欢在服务器端实现它。

您想过使用jquery Ajax删除单击的项目吗?如果您这样做,您可以使用单击的元素的id,并将该id发送到后端并将其删除。您想过使用jQuery Ajax删除单击的项目吗?如果使用此路径,则可以使用所单击元素的id,并将该id发送到后端并将其删除。