2
У меня есть форма mvc весны с несколькими моделями. Color
и Shade
Как проверить несколько моделей в форме весны mvc?
Я использую валидатор hibernate, и когда у меня есть только одна модель, проверки работают отлично. Из моих исследований я обнаружил, что лучший способ иметь несколько моделей с формой весны 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
, то проверки будут работать отлично. Как я могу получить как несколько моделей в одной форме, так и проверки, чтобы работать правильно?