单个控制器支持多个模型属性对象

时间:2014-09-25 14:06:14

标签: java spring jsp

我将很快解释我的情景。我在不同的jsps中有两种形式

一个。 JSP

<form:form method="POST" modelAttribute="editForm" action="tableEditor/saveTable.do">
 <form:input path="name">
</form:form>

B.jsp

<form:form method="POST" modelAttribute="editForm" action="tableEditor/saveTable.do">
 <form:input path="id">
</form:form>

相应地我有模型类

public class Model1{
   String name;
}

public class Model2{
   String id;
}

我希望有一个控制器方法支持这两种形式BindingResult验证

不喜欢以下

public String addCustomer(@ModelAttribute("editForm") Model1 edit, BindingResult result) {

}
经过一些研究,我找到了这个。 Spring - adding BindingResult to newly created model attribute

那么我可以像以下或其他更好的想法设计someThing吗?

public String addCustomer(Model model) {
      BindingResult errors = null;
      if(someCondition){      
        Model model1 = model.asMap().getAttribute("editForm");
        if (!model1 .validate()) {
            errors = new BeanPropertyBindingResult(model1, "editForm");
            errors.reject("invalid operation");
            model.put(BindingResult.MODEL_KEY_PREFIX + "editForm", errors);
        }
      }
  else{
    Model model2 = model.asMap().getAttribute("editForm");
  }
}

0 个答案:

没有答案