一、什么是数据回显
页面数据提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面。
二、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域中的。