我将很快解释我的情景。我在不同的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");
}
}