2011-12-21 136 views
12

我正在查找提交窗體時spring:bind和form:form標籤庫之間的區別。Spring MVC:彈簧之間的區別:綁定和窗體:窗體

我的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來看,這是否意味着我不需要春:綁定?

感謝

回答

24

通常你不需要使用<spring:bind>如果您已經使用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標籤庫來實現是非常有用的。

+0

很好解釋,謝謝 – DJ180 2011-12-21 15:38:20

相關問題