Форма Spring Отправить, чтобы удалить элемент коллекции - PullRequest
1 голос
/ 29 января 2012

У меня есть страница, на которой есть объект поддержки формы, содержащий свойство коллекций, которое я зацикливаю на странице. Я хочу дать пользователю возможность удалить элемент коллекции, нажав на кнопку удалить. Однако я не знаю, какая кнопка удаления была нажата в контроллере, так как у каждого элемента в коллекции есть кнопка удаления. В основном мне нужно знать, какая кнопка удаления была нажата, поэтому я знаю, какой идентификатор вопроса должен быть удален. Каков наилучший способ сделать это? Пожалуйста, смотрите мою страницу ниже:

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

1 Ответ

1 голос
/ 30 января 2012

Что ж, я решил свою проблему: в моем доменном объекте было создано свойство isDeleted, которое также является объектом поддержки формы, и было создано флажок для каждой записи на странице.Если пользователь нажимает на флажок или флажки и нажимает кнопку сохранения, контроллер проверяет значение флажка и заполняет 2 разные коллекции: одну для toBeSaved, а другую для toBeDeleted.Непроверенные записи сохраняются, а проверенные записи удаляются из базы данных.

Я видел много вариантов в Интернете, чтобы сделать это через маршрут jquery, но я все еще изучаю jquery и предпочел сделать это на стороне сервера.

...