我希望在提交表单时找出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?
由于
答案 0 :(得分:26)
通常,如果您已使用<spring:bind>
taglib,则无需使用form
。
它们在模型属性方面基本相同,但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无法实现。