2013-05-13 3 views
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, то проверки будут работать отлично. Как я могу получить как несколько моделей в одной форме, так и проверки, чтобы работать правильно?

ответ

Смежные вопросы