现在的位置: 首页 > 综合 > 正文

关于@ModelAttribute的理解

2016年08月17日 ⁄ 综合 ⁄ 共 869字 ⁄ 字号 评论关闭

A、在Spring里,@ModelAttribute如果加在方法上面,则表示这个方法会在匹配所有其他的@RequestMapping之前先要做的,如下这两个方法

 @ModelAttribute
    public void testModelAttr(@RequestParam("hello")String abc,ModelMap model){
        model.addAttribute("hello", hello);
        
    }
    @RequestMapping("/attr")
    public String modelAttr(){
        return "game/attr.ftl";
    }


在你访问attr.htm前要先做@ModelAttribute声明的函数,当然你在请求参数里要有如attr.htm?hello=kitty这样的写法或者参数传来,否则会报400或404错误,当你正确输入了之后,前台就可以使用这个model里的参数了。

B、参数的值从当前控制器的@ModelAttribute方法提供的model属性中获取

@Controller

public classHelloWorldController {

  (1) @ModelAttribute("userBean")

   publicUser addAccount() {

      return newUserBean("xiaoQ","23");

   

   @RequestMapping(value ="/attr")

publicString helloWorld(@ModelAttribute("user")
UserBean  user) {

      user.setUserName("xQ");

      return"game/attr.ftl";

   }

}

这里就是先从声明@ModelAttribute("userBean")里取得user,如果没有(1)处的声明,则会初始化一个对象,当然如果说前台传来匹配这个对象参数的话,值会直接匹配进去。

抱歉!评论已关闭.