В моем приложении Spring у меня есть jsp, который имеет форму, в которой я хочу иметь несколько кнопок отправки, которые идут на один и тот же контроллер. Мне нужно иметь возможность определить, какая кнопка была нажата в контроллере. Форма отображает количество элементов для пользователя, и они могут выбрать один из элементов, с той лишь разницей, что идентификатор выбранного элемента.
В jsp я создаю форму, подобную этой:
<form:form method="post" commandName="myCommand">
<c:forEach items="${model.availableitems}" var="item">
<span class="item">${item.description}</span>
<input type="hidden" name="id" value="${item.ID}"/>
<input type="submit" name="SelectButton" value="Select" />
</c:forEach>
</div>
</form:form>
Однако, это дает мне сообщение «Ошибки привязки данных: 1» в журнале, и форма не передается контроллеру.
Я попытался изменить myCommand.id с int на String, но затем при отправке им присваивается значение id1, id2, id3 ... (все идентификаторы в списке с разделителями-запятыми) без возможности определить, кнопка была нажата. Я не хочу указывать разные действия для каждой кнопки, поскольку количество элементов может увеличиваться, и действие для них одинаково, только с другим идентификатором.
Как мне иметь несколько кнопок в этой форме и получить значение в контроллере?