SpringMVC常用的注解与类

本文详细介绍了 Spring MVC 中常用的注解及其使用方法,包括 @RequestMapping、@RequestParam、@RequestHeader 等,还深入探讨了 Model、ModelAndView 的作用及 @SessionAttributes、@ModelAttribute 的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. @RequestMapping
 针对方法映射uri的路径
 作用域:类或者方法
2. @RequestParam
 作用:注解用于绑定请求中的参数到处理方法的参数中
 请求参数--------》@RequestParam-------》方法参数中
 1、注解标注的参数默认是必须的 ( required = true ), 不可缺省。
 2、就基本数据类型而言, 其值要求是必须的, 如果允许空值, 需要用包装类型来替代
 3、支持数组、集合
  支持集合,必须添加@RequestParam才支持
3. @RequestHeader
 作用:读取请求头部信息
4. @PathVariable
 作用:带占位符的URL是Spring3.0新增的功能
 实现restful风格url
5. Model、ModelMap、ModelAndView
 作用:都可以描述数据模型
 ModelAndView:除了描述数据模型之外,还可以加载转发的逻辑视图名
 Model对象
 作用:便于将数据存储到request作用域
 注意:
 SpringMVC每次请求,隐含产生一个Model对象
6. @SessionAttributes注解
 作用域:类
 作用:将model的数据存储到Session对象中
7. @ModelAttribute注解
 作用:将数据添加到model
 用法:
 (1) @ModelAttribute注解void返回值的方法 
 执行Handler方法之前先被调用
 
@ModelAttribute  
	 public void populateModel(@RequestParam String abc, Model model) 
	 {
		 model.addAttribute("attributeName", abc);  
	 }  
  
	 @RequestMapping(value = "/helloWorld")  
	 public String helloWorld() 
	 {  
		 return "helloWorld";  
	 }

 (2) @ModelAttribute注解返回具体类的方法
 返回类型就是model的key,方法返回值为model的value
 @ModelAttribute  
	 public Account addAccount(@RequestParam String number)
	 {
		 return accountManager.findAccount(number);
	 }
 (3) @ModelAttribute(value="")注解返回具体类的方法
 括号中的value为model的key,方法返回值为model的value
 
@ModelAttribute("attributeName")  
     public String addAccount(@RequestParam String abc) {  
	 return abc;  
     }  
  

  
  
@RequestMapping(value = "/helloWorld")
public String helloWorld() { return "helloWorld"; }

(4) @ModelAttribute和@RequestMapping同时注解一个方法时,方法的返回值并不是逻辑视图名,而是model的key
@RequestMapping(value = "/helloWorld.do")
@ModelAttribute("attributeName")
public String helloWorld()
{
    return "hi";  
}
(5) @ModelAttribute注解一个方法的参数

举例:

/*
	创建User对象,以(key=user,value=user对象)添加到Model
*/
@ModelAttribute("user")
public User userModel5( 
	@RequestParam("loginname") String loginname,
	@RequestParam("password") String password)
{
	User user = new User();
	user.setLoginname(loginname);
	user.setPassword(password);
	return user;
} 
/*
	将model的key=user的value对象值赋值给user参数
*/
@RequestMapping(value="/login5")
 public String login5(@ModelAttribute("user") User user) {
	user.setUsername("管理员");
	 return "result5";
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值