码迷,mamicode.com
首页 > 移动开发 > 详细

用@RequestMapping映射请求

时间:2016-09-20 23:44:16      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

DispatcherServlet接受一个web请求之后,将请求发送给@Controller注解声明的不同控制器类。

这个调度过程依赖控制器类及其处理程序方法中声明的各种@RequestMapping注解。

Spring MVC中,web请求通过控制器类中声明的一个或者多个@RequestMapping注解映射到处理程序。

处理程序映射根据与上下文路径(Web应用上下文路径)和servlet路径(映射到DispatcherServlet的路径)的相对路径匹配URL。

 

使用@RequestMapping注解的最简单的策略是直接修饰处理程序方法。为此需要用包含URL模式的@RequestMapping注解声明每个处理程序方法。

如果方法的@RequestMapping注解匹配请求的URL,DispatcherServlet将请求发往这个方法处理。

 

@Controller

控制类

@Autowired

控制反转生成控制类的实例

@RequestMapping("/member/add")

方法1

@RequestMapping(value={"/member/remove", "/member/delete"}, method=RequestMethod.GET)

方法2

 

另外一种

@Controller

@RequestMapping("/member/*")

控制类

@Autowired

控制反转生成控制类的实例

@RequestMapping("add")

方法1

@RequestMapping(value={"remove","delete"}, method=RequestMethod.GET)

方法二

@RequestMapping("display/{user}")

方法三(@RequestParam("memberName") String memberName,  @PathVariable("user") String user)

 

@RequestMapping

方法四

 

方法五

 

对于方法三,如果接受的请求形式为/member/display/jdoe,方法将以jdoe值访问user变量

 

对于方法四使用了@RequestMapping注解,但是缺少URL值,因为类级别使用了/member/* URL通配符,这个处理方法作为全能的方法执行。

任何URL请求(例如/member/abcdefg或/member/randomrout)都会触发这个方法。

 

最后一个方法没有@RequestMapping注解,意味着这个方法是一个工具,对于Spring MVC没有影响。

 

按照HTTP请求类型映射请求

默认情况下,@RequestMapping注解假定所有的入站请求为HTTP GET类型。但是当入站请求是另一种HTTP类型,就有必要在@RequestMapping注解中明确指定的类型。

 

@RequestMapping (method = RequestMethod.POST)

public String submitForm (@ModelAttribute ("member") Member member, BindingResult result, Model model) {

……

}

用@RequestMapping映射请求

标签:

原文地址:http://www.cnblogs.com/tuhooo/p/5890909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!