springmvc数据回显

一、什么是数据回显

  页面数据提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面。

二、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域中的。

原文地址:https://www.cnblogs.com/WarBlog/p/15029840.html