一、什么是数据回显
页面数据提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面。
二、pojo数据回显方法
Ⅰ、springmvc默认对pojo数据进行回显
Ⅱ、@ModelAttribute还可以将方法的返回值传到页面
// 商品分类 //itemtypes表示最终将方法返回值放在request中的key @ModelAttribute("itemtypes") public Map<String, String> getItemTypes() { Map<String, String> itemTypes = new HashMap<String, String>(); itemTypes.put("101", "数码"); itemTypes.put("102", "母婴"); return itemTypes; }
①、页面上可以得到itemTypes数据
商品类型: <select name="itemtype"> <c:forEach items="${itemtypes }" var="itemtype"> <option value="${itemtype.key }">${itemtype.value }</option> </c:forEach> </select>
②、结果

Ⅲ、使用最简单方法使用model,可以不用@ModelAttribute
@RequestMapping("/editItemsSubmit")
public String editItemsSubmit(Model model,@Validated(value= {ValidGroup1.class}) ItemsCustom itemsCustom,BindingResult bindingResult)
throws Exception {
// 获取校验错误信息
if (bindingResult.hasErrors()) {
// 输出错误信息
List<ObjectError> allErrors = bindingResult.getAllErrors();
for (ObjectError objectError : allErrors) {
// 输出错误信息
System.out.println(objectError.getDefaultMessage());
}
// 将错误信息传到页面
model.addAttribute("allErrors", allErrors);
//可以直接使用model将提交pojo回显到页面
model.addAttribute("items", itemsCustom);
// 出错重新到商品修改页面
return "items/editItems";
}
三、简单类型回显
使用最简单方法使用model
model.addAttribute("id", id);
四、总结
数据回显本质:将数据存储到request域中,用于页面渲染。无论Model,ModelAndView,@ModelAttribute实际上就是数据存储到request域中的。