Spring MVC:spring:bind和form:form之间的区别

JJ1*_*180 14 forms jsp spring-mvc

我希望在提交表单时找出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>
....
Run Code Online (Sandbox Code Playgroud)

看到我指定了我的路径变量,这将绑定到我的modelAttribute,这是否意味着我不需要spring:bind?

谢谢

axt*_*avt 26

通常,<spring:bind>如果您已经使用了formtaglib,则无需使用.

它们在模型属性方面基本相同,但formtaglib中的标签也会生成HTML表单标记,而<spring:bind>您需要自己生成标记.

以下带form代码的代码:

<form:form modelAttribute = "foo">
    <form:input path = "bar" />
</form:form>
Run Code Online (Sandbox Code Playgroud)

类似于以下代码<spring:bind>:

<spring:bind path = "foo">
    <form method = "get">
        <spring:bind path = "bar">
            <input name = "bar" value = "${status.displayValue}" />
        </spring:bind>
    </form>
</spring:bind>
Run Code Online (Sandbox Code Playgroud)

<spring:bind>当你需要一些自定义的东西时很有用,这是formtaglib 无法实现的.