什么是<spring:bind>?何时使用它,何时不使用它?</spring:bind>

时间:2011-07-27 21:15:09

标签: java forms spring

我在春季提交表单数据时遇到问题。 <spring:bind>似乎是解决方案的一部分。查看我的完整问题here

BindTag found here的文档对我来说并不清楚。为什么<spring:bind>在某些情况下需要提交数据,而在大多数情况下不需要?

为了使表单正常运行,必须使用<spring:bind>的典型情况是什么?

2 个答案:

答案 0 :(得分:4)

当您想要从输入表单解析多个对象时,您会发现标记<spring:bind>非常有用。以下是Spring的doc(http://docs.spring.io/spring/docs/1.2.6/taglib/tag/BindTag.html)中的修改示例:

<form method="post">
        ## now bind on the name of the company
        <spring:bind path="company.name">
        ## render a form field, containing the value and the expression
        Name: <input 
            type="text" 
            value="<c:out value="${status.value}"/>"
            name="<c:out value="${status.expression}"/>">
        </spring:bind>

<spring:bind path="address.street">
    Name: <input 
        type="text"
        value="<c:out value="${status.value}"/>"
        name="<c:out value="${status.expression}"/>">
</spring:bind>
<input type="submit">
</form> 

答案 1 :(得分:1)

虽然我自己从未使用过这个标签,但我对文档的理解是这样的。标记将为您提供有关表单属性与bean的绑定状态的信息。例如:

<form:form modelAttribute="employee">
    <form:input path="name"/>
    <spring:bind path="name"/>
    <spring:bind path="employee"/>
</form:form>

标记将显示(或通过BindStatus对象公开)使用name属性(第一种情况)发生的所有错误以及Employee实体及其属性(第二种情况)上的所有错误。我不确定这个标签与提交数据的成功有什么关系,而是它被用作信息工具。