springmvc实现jsp界面回显的三种方式总结:
第一种:controller处理方法的形参pojo定义的对象与此类型同名 ,首字母小写,此时spring能自动将该
对象名为key,此对象作为value,保存到request中。(必须注意:方法形参必须定义HttpServletRequest对象)
形如:
controller中的方法:
public ModelAndView insertItemsXXXX(
HttpServletRequest request,
Modelmodel,
@Validated ItemsCustom itemsCustom,
BindingResult bindingResult)throws Exception
jsp的处理:
<input type="text" name="name" value="${itemsCustom.name}">
第二种:通过注解 @ModelAttribute来定义request中保存的key的名字,如下:
controller:
public ModelAndView insertItemsXXXXX(
HttpServletRequest request,
Model model,
@ModelAttribute(value="items") @Validated ItemsCustom itemsCustom,
BindingResult bindingResult)throws Exception
jsp:
<input type="text" name="name" value="${items.name}">
第三种:通过model方式在request中存储指定key与value,如下:
controller:
@RequestMapping("/insertItemsXXXXX")
public String insertItemsXXXXX(
HttpServletRequest request,
Model model,
@Validated ItemsCustom itemsCustom,
BindingResult bindingResult)throws Exception{
if(bindingResult.hasErrors()){
model.addAttribute("allErrors", bindingResult.getAllErrors());
model.addAttribute("items", itemsCustom);
return ....;
}
.......
return ....;
}
jsp调用同上。
验证未通过时,显示每个输入项的提示信息,采用第二种配置模式。
jsp页面需要使用springmvc的标签<form:form modelAttribute="items">,此处的modelAttribute的值与controller中注解@ModelAttribute("items")的value值相同:
<form:form action=".." method="post" modelAttribute="items">
<input type="text" name="name" value="${items.name}">
<form:errors path="name" />
</form:form>
其中,input标签中的 value="${items.name}"用于回显输入项信息,<form:errors path="name" />用于显示验证的提示信息(注意要显示验证提示信息,必须设定modelAttribute="items")。