我有一个带有多个模型的 spring mvc 表单。 颜色
和阴影
我正在使用休眠验证器,当我只有一个模型时,验证工作完美。根据我的研究,我发现使用 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
}
Controller
@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
模型的环绕,那么验证就可以正常工作。如何让单一表单和验证中的多个模型都能正常工作?
最佳答案
尝试:
public class ColorShade {
@Valid
private Color color;
@Valid
private Shade shade;
//getter setters
}
关于spring - 如何在 spring mvc 表单中验证多个模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16525024/