关于@ModelAttribute的理解

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)处的声明,则会初始化一个对象,当然如果说前台传来匹配这个对象参数的话,值会直接匹配进去。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值