У меня есть базовый выбор в JSP
<select name="tableName">
<c:forEach var="valuesInRow" items="${valuesInRows}" varStatus="loop">
<option><c:out value="${valuesInRow}"></c:out></option>
</c:forEach>
</select>
тогда я хочу передать это так:
<s:url var="url_list" value="/spravochnik/list">
<s:param name="tableName" value="${tableName}"/>
</s:url>
<a href="${url_list}">List</a>
Контроллер принимает tableName следующим образом:
@RequestMapping(value = "/list", method = { RequestMethod.POST, RequestMethod.GET })
public String getSpravochniks(Model m, @PathVariable("tableName") String tableName) {
...
}
В браузере я вижу форму URL, подобную этой:
http://localhost:8080/spravochnik/list?tableName=
, поэтому он не распознает переменную tableName, которую я выбрал из выбора ... Я не использую форму и отправляю, я хочу соединиться исключительно с URL-адресом. Пожалуйста, вы можете помочь мне определить, почему tableName не передается?
EDIT:
Теперь моя часть JSP выглядит так:
<c:set var="tableName" value="${0}"></c:set>
<select name="tableName">
<c:forEach var="dropDown" items="${dropDown}">
<c:forEach var="valuesInRows" items="${dropDown.valuesInRows}">
<c:forEach var="valuesInRow" items="${valuesInRows}" varStatus="loop">
<c:if test="${loop.index %2 != 0}">
<c:set var="tableName" value="${valuesInRow}"></c:set>
<option value="${valuesInRow}"><c:out value="${valuesInRow}"></c:out></option>
</c:if>
</c:forEach>
</c:forEach>
</c:forEach>
</select>
Это реальная, не упрощенная версия. Я заполняю выбор из БД. Когда я проверяю свою переменную tableName, которую я установил в c: set, она всегда показывает последний параметр. Как сделать так, чтобы вместо нее отображалась выбранная опция?