Spring MVC: Разница между spring: bind и form: form
Я ищу, чтобы узнать разницу между библиотеками тегов spring: bind и form: form при отправке формы.
Фрагмент моего JSP выглядит следующим образом:
<form:form modelAttribute="testRulesForm">
....
<td>
<form:checkbox path="rules[${counter.index}].isActive" value="rules[${counter.index}].isActive"/>
</td>
<td>
<form:select path="rules[${counter.index}].leftCondition.name">
<form:options items="${testRulesForm.ruleAttributes}" itemLabel="name" itemValue="name" />
</form:select>
</td>
<td>
<form:select path="rules[${counter.index}].operator">
<form:options itemLabel="operator" itemValue="operator" />
</form:select>
</td>
....
Увидев, что у меня указанная переменная пути, и это будет связано с моим атрибутом modelAttribute, означает ли это, что мне не нужен spring: bind?
Спасибо
Ответы
Ответ 1
Обычно вам не нужно использовать <spring:bind>
, если вы уже используете form
taglib.
Они делают в основном то же самое в отношении атрибутов модели, но теги из form
taglib также генерируют разметку HTML-формы, тогда как с <spring:bind>
вам нужно самостоятельно создавать разметку.
Следующий код с тегами form
:
<form:form modelAttribute = "foo">
<form:input path = "bar" />
</form:form>
похож на следующий код с <spring:bind>
:
<spring:bind path = "foo">
<form method = "get">
<spring:bind path = "bar">
<input name = "bar" value = "${status.displayValue}" />
</spring:bind>
</form>
</spring:bind>
<spring:bind>
полезен, когда вам нужно что-то настроенное, чего не может достичь form
taglib.