2
我有一個春天mvc形式與多個模型。 Color
和Shade
如何在彈簧mvc表單中驗證多個模型?
我使用的是hibernate驗證器,當我只有一個模型時驗證工作完美。從我的研究中,我發現使用spring mvc形式創建多個模型的最佳方法是創建一個包裝兩個模型的新模型。所以,我提出:
模式
public class ColorShade {
private Color color;
private Shade shade;
//getter setters
}
public class Color {
@NotEmpty
private String name;
//getter setters
}
public class Shade {
@NotEmpty
private String shadeName;
//getter setters
}
控制器
@RequestMapping(method = RequestMethod.POST)
public String validateForm(
@ModelAttribute("COLORSHADE") @Valid ColorShade colorShade,
BindingResult result, Map model) {
if (result.hasErrors()) {
return "myForm";
}
return "success";
}
查看
<form:form method="post" commandName="COLORSHADE" cssClass="form-horizontal" >
<spring:bind path="COLORSHADE.color.name">
<div class="control-group ${status.error ? 'error' : ''}">
<label class="control-label">Color Name</label>
<div class="controls">
<form:input path="${status.expression}"/>
</div>
</div>
</spring:bind>
<spring:bind path="COLORSHADE.shade.shadeName">
<div class="control-group ${status.error ? 'error' : ''}">
<label class="control-label">Shade Name</label>
<div class="controls">
<form:input path="${status.expression}"/>
</div>
</div>
</spring:bind>
</form>
問題
- 上述設置有效,但驗證現在不起作用。我如何獲得驗證工作?
- 如果我只有單一的模型,並取消圍繞
ColorShade
模型包裝,然後驗證工作完全正常。我怎樣才能在單一形式和驗證中同時獲得多個模型以正常工作?