首页 新闻 会员 周边

多个@ModelAttribute 执行顺序

0
悬赏园豆:20 [已关闭问题] 关闭于 2017-06-13 15:29

事情是这样的

我创建了一个 BaseController。
使得每个 controller都继承自BaseController。
然后在BaseController中,进行一些操作。比如读取配置文件,读取用户权限等等。

那么问题来了。
如下代码

 
public class TestBaseController {
    @RequestMapping(value = "test2.do")
    public void test2()
    {
        System.out.println(222222);
    }


    @ModelAttribute("cccc")
    public void test5()
    {
        System.out.println("ccccc");
    }

    @ModelAttribute()
    public void test6()
    {
        System.out.println("6666666");
    }

    @ModelAttribute("aaaa")
    public void test3()
    {
        System.out.println("aaaaa");
    }

    @ModelAttribute("bbbb")
    public void test4()
    {
        System.out.println("bbbbb");
    }

    @ModelAttribute("acc")
    public PageAccessCode setReqAndRes(HttpServletRequest request, HttpServletResponse response) {
        System.out.println("acc");
        return null;
    }


    @ModelAttribute("ctx")
    public String getContext(HttpServletRequest request, HttpServletResponse response) {
        System.out.println("ctx");
        return null;
    }
}

 

输出顺序:

ctx
ccccc
6666666
aaaaa
acc
bbbbb

 

他们的执行顺序到底是怎么个情况呢?
网上资料,有的说顺序执行,有的说反序执行。

我自己测试,
发现根本没有顺序可言
请问@ModelAttribute到底是什么机制呢?

正怒月神的主页 正怒月神 | 初学一级 | 园豆:183
提问于:2017-06-12 10:26
< >
分享
所有回答(1)
0

然而,查找了3天3夜,测试了无数遍。

并没有什么规律可言!

正怒月神 | 园豆:183 (初学一级) | 2017-06-13 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册