RequestMapping注解
作用
用于建立请求URL和处理请求方法之间的对应关系。
属性
- value:指定请求的实际地址,可以是一个字符串或者一个字符串列表。
value可以不写,直接在括号中写,默认就是value值
@RequestMapping(value=“/hello”)
public String hello(){ return…} - method:指定请求的方式,可以是GET、POST、PUT、DELETE等。
@RequestMapping(value=“/hello”,method=RequestMethod.GET/POST/PUT/DELETE)
等效于 :1.@GetMapping(“/hello”);
2.@PostMapping(“/hello”);
3.@PutMapping(“/hello”);
4.@DeleteMapping(“/hello”) - params:指定参数,用于匹配请求路径中的参数。
- headers:指定请求头,用于匹配请求头中的内容。
- produces:指定响应的媒体类型,用于匹配响应内容的类型。
- custom:用于指定自定义的匹配规则。
位置
1.在类上
写在类上一般是有二级路径,类似
-
请求 URL的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。它出现的目的是为了使我们的 URL 可以按照模块化管理,例如:
账户模块:
/account/add
/account/update
/account/delete …
订单模块:
/order/add
/order/update
/order/delete
红色的部分就是把RequsetMappding写在类上,使我们的URL更加精细。
2.方法上
请求URL的第二级访问目录,可以窄化请求路径
使用
1.窄化路径
-
使用二级目录访问
@Controller @RequestMapping("/account") public class AccountController { @RequestMapping("/findAccount") public ModelAndView findAccount() { ModelAndView mv = new ModelAndView(); mv.addObject("msg", "欢迎你 springmvc"); mv.setViewName("success"); return mv; } }
-
在index.jsp里面定义超链接
<a href="/account/findAccount">窄化路径</a>
2.method属性示例
-
描述需要使用指定的请求方式来请求该方法
@Controller @RequestMapping("/account") public class AccountController { //指定的请求方式 @RequestMapping(value = "/findAccount1", method = RequestMethod.POST) public ModelAndView findAccount1() { ModelAndView mv = new ModelAndView(); mv.addObject("msg", "欢迎你 springmvc"); mv.setViewName("success"); return mv; } }
-
测试:在index.jsp里使用get方式请求
<a href="/account/findAccount1">请求方式</a>
结果:
-
我们再换一种请求方式
<form action="account/findAccount1" method="post"> <input type="submit" value="保存账户,post 请求"> </form>
结果: