Spring MVC中@ModelAttribute注解起什么作用呢?

转自:

Spring MVC中@ModelAttribute注解起什么作用呢?

@ModelAttribute注解的功能:

   1.将请求参数绑定到实体对象上
   2.将一个方法注解为非请求方法

注意事项:
     ModelAttribute注解需引入org.springframework.web.bind.annotation.ModelAttribute


下文将通过示例的方式讲述ModelAttribute的功能
 

1.绑定请求参数到实体对象(表单的命令对象)

@RequestMapping("/register")
public String register(@ModelAttribute("user") UserForm user) {
if ("java265user".equals(uname) && "pwd888".equals(upass)) {
      logger.info("login success");
      return "login";
} else {
      logger.info("login fail");
return "register";
}
 

上面的代码通过使用@ModelAttribute("user")UserForm user”注解 将请求参数封装到user对象中,并创建一个UserForm实例 并将值放入user 这个Model对象中  此方法效果类似于   model.addAttribute("user",user)

2.注解一个非请求处理方法

 将@ModelAttribute 注解放入方法前
   每次调用控制此方法时,注解将被调用,常用于权限控制,拦截器,过滤器 

 例:

package controller;

import javax.servlet.http.HttpSession;

import org.springframework.web.bind.annotation.ModelAttribute;

public class BaseController {
@ModelAttribute
public void isLogin(HttpSession session) throws Exception {
if (session.getAttribute("user") == null) {
throw new Exception("无权限操作");
}
}
}

创建 ModelAttributeController ,代码如下所示:
 package controller;

import org.springframework.web.bind.annotation.RequestMapping;

@RequestMapping("/admin")
public class ModelAttributeController extends BaseController {

@RequestMapping("/add")
public String add() {

return "addSuccess";

}

@RequestMapping("/update")
public String update() {

return "updateSuccess";

}

@RequestMapping("/delete")
public String delete() {

return "deleteSuccess";
}
}


当ModelAttributeController 类中
    add、update、delete 请求处理方法运行时,
   将先运行父类 BaseController 中的 isLogin 方法判断登录权限
  “http://localhost:8080/springMVCtest/admin/add” 验证权限的存在性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值