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方法之前先被调用
(2) @ModelAttribute注解返回具体类的方法
返回类型就是model的key,方法返回值为model的value
括号中的value为model的key,方法返回值为model的value
(4) @ModelAttribute和@RequestMapping同时注解一个方法时,方法的返回值并不是逻辑视图名,而是model的key
针对方法映射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";
}