• 【Spring】@ModelAttribute三种使用场景


    @ModelAttribute

    1.用在Controller的方法上:

    每次执行方法时都会先执行@ModelAttribute注解的方法,并将结果添加到model中。

    @ModelAttribute("top")
    public Map top(){
        return pageTop.getDataMap();
    }
    
    @RequestMapping({"", "/", "/home"})
    public String home(@RequestBody(required = false) Map<String, Object> param, Model model) {
        model.addAttribute("model", dataAssembly.homePageData(param));
        return "home";
    }
    

    执行home()前先执行top()将顶部模块数据放到model.

    在home返回的视图中包含top值,可以直接在页面获取.

    2.用在方法的参数上:

    @RequestMapping("/test")
    public String test(@ModelAttribute("top") Map top, Model model) {
        JSONArray ja  = JSONArray.fromObject(map);
        return "test";
    }
    

    可以直接从参数中取值.

    3.用在ControllerAdvice的方法中:

    @ControllerAdvice
    public class GlobalModelData {
        @ModelAttribute
        public Object globalUser() {
            User user = new User();
            user.setUn("xxx");
            return user;
            *//*这里在controller执行前将返回值填充到model中,则可以在model中获取数据*//*
        } 
    }
    

    每个Controller中的方法执行前都会先执行 @ModelAttribute注解标注的方法,并将返回值添加到model

  • 相关阅读:
    《鱼嘤嘤小分队》第一次作业:项目选题
    第一次博客作业
    csp 201709-2 优先队列模拟
    csp 201403-2
    csp 201809-2 买菜
    JavaScript中伪协议
    修改placeholder的样式
    jQuery对象与DOM对象之间的转换方法
    a的样式
    Guid.NewGuid() 和 new Guid()的区别
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286676.html
Copyright © 2020-2023  润新知