Spring mvc中@RequestMapping 6个基本用法小结

Spring mvc中@RequestMapping 6个基本用法小结

  小结下spring mvc中的@RequestMapping的用法。 

1)最基本的,方法级别上应用,例如: 
   

Java代码  

  1. @RequestMapping(value="/departments")  
  2. public String simplePattern(){  
  3.   
  4.   System.out.println("simplePattern method was called");  
  5.   return "someResult";  
  6.   
  7. }  

   则访问http://localhost/xxxx/departments的时候,会调用 simplePattern方法了 

2) 参数绑定 
  

Java代码  

  1. @RequestMapping(value="/departments")  
  2. public String findDepatment(  
  3.   @RequestParam("departmentId") String departmentId){  
  4.     
  5.     System.out.println("Find department with ID: " + departmentId);  
  6.     return "someResult";  
  7.   
  8. }  

   
  形如这样的访问形式: 

   /departments?departmentId=23就可以触发访问findDepatment方法了 

3 REST风格的参数 
  

Java代码  

  1. @RequestMapping(value="/departments/{departmentId}")  
  2. public String findDepatment(@PathVariable String departmentId){  
  3.   
  4.   System.out.println("Find department with ID: " + departmentId);  
  5.   return "someResult";  
  6.   
  7. }  

  
  形如REST风格的地址访问,比如: 
/departments/23,其中用(@PathVariable接收rest风格的参数 

4 REST风格的参数绑定形式之2 
   先看例子,这个有点象之前的: 

Java代码  

  1. @RequestMapping(value="/departments/{departmentId}")  
  2. public String findDepatmentAlternative(  
  3.   @PathVariable("departmentId") String someDepartmentId){  
  4.   
  5.     System.out.println("Find department with ID: " + someDepartmentId);  
  6.     return "someResult";  
  7.   
  8. }  

   这个有点不同,就是接收形如/departments/23的URL访问,把23作为传入的departmetnId,,但是在实际的方法findDepatmentAlternative中,使用 
@PathVariable("departmentId") String someDepartmentId,将其绑定为 
someDepartmentId,所以这里someDepartmentId为23 

5 url中同时绑定多个id 
 

Java代码  

  1. @RequestMapping(value="/departments/{departmentId}/employees/{employeeId}")  
  2. public String findEmployee(  
  3.   @PathVariable String departmentId,  
  4.   @PathVariable String employeeId){  
  5.   
  6.     System.out.println("Find employee with ID: " + employeeId +   
  7.       " from department: " + departmentId);  
  8.     return "someResult";  
  9.   
  10. }  

   这个其实也比较好理解了。 

6 支持正则表达式 
  

Java代码  

  1. @RequestMapping(value="/{textualPart:[a-z-]+}.{numericPart:[\\d]+}")  
  2. public String regularExpression(  
  3.   @PathVariable String textualPart,  
  4.   @PathVariable String numericPart){  
  5.   
  6.     System.out.println("Textual part: " + textualPart +   
  7.       ", numeric part: " + numericPart);  
  8.     return "someResult";  
  9. }  

   比如如下的URL:/sometext.123,则输出: 
Textual part: sometext, numeric part: 123. 

时间: 2024-09-26 00:33:56

Spring mvc中@RequestMapping 6个基本用法小结的相关文章

Spring MVC中RequestMapping是否支持常量?

问题描述 很多URL都带有 add,update,delete等,想把他们做成常量,如Constants.ADD,Constants.UODATE等,然后放到RequestMapping里面,格式如:RequestMapping(Constants.ADD),但是Eclipse提示错误,请问是不是RequestMapping不支持内部是常量,而只支持这样的格式RequestMapping("add")? 解决方案 支持的:public interface Constant {publi

Spring MVC 中的@RequestMapping(method = RequestMethod.OPTIONS)无法拦截

问题描述 Spring MVC 中的@RequestMapping(method = RequestMethod.OPTIONS)无法拦截,貌似这个注解不能拦截OPTIONS方法,get,post,put都能,为什么这个不能,有什么解决办法 解决方案 这里给个提示,看是否解决:http://stackoverflow.com/questions/23103832/spring-mvc-does-not-handle-requestmethod-options

Spring MVC中的MultiActionController用法详解

Spring MVC 中 Controller 的层次实在是多,有些眼花缭乱了 .在单个的基础上,再新加两三个叫做丰富,再多就未必是好事, 反而会令人缩手新闻片脚,无从定夺.多数 Controller 都是只完 成一个任务,不过也有一个像 Struts 的 DispatchAction 的那样 的 Conntroller, org.springframework.web.servlet.mvc.multiaction.MultiActio nController,意即在一个 Controller

Http请求中Content-Type讲解以及在Spring MVC中的应用

引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在Spring MVC中如何使用它们来映射请求信息. Content-Type MediaType,即是Internet Media Type,互联网媒体类型:也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息. [html] view pl

spring mvc中使用post方式请求返回405

问题描述 spring mvc中使用post方式请求返回405 后台处理方法 @RequestMapping(value=""/doLogin"" method=RequestMethod.POST) public ModelAndView doLogin(HttpSession session){ logger.info(""user login.""); session.setAttribute(""U

spring MVC 中获取request

spring MVC中如何获取request 呢? 有如下方式: 方式一:在action中注入request 直接在action的参数中增加HttpServletRequest request 例如 /*** * 返回json * @param id * @param roleLevel * @param model * @param request * @param targetView * @return * @throws SecurityException * @throws NoSuc

Spring MVC 中的异常处理 (handling exceptions)

在任何应用开发中都需要对异常情况做处理,web应用也是如此.但是在Spring MVC中,所有的Request都是由Servlet处理的,返回的结果都是Response.也就是说,无论请求过程中出现什么异常,返回的都是一个Response,所有异常信息都要转换成Response. 当然,Spring提供了多种异常信息到Response信息的转换方式: 1. 一些特定的Spring异常已经被自动映射特定的http status code 2. 我们可以通过@ResponseStatus注解将一个异

Spring MVC中基于自定义Editor的表单数据处理技巧分享_java

面向对象的编程方式极大地方便了程序员在管理数据上所花费的精力.在基于Spring MVC的Web开发过程当中,可以通过对象映射的方式来管理表单提交上来的数据,而不用去一个一个地从request中提取出来.另外,这一功能还支持基本数据类型的映射.例如in.long.float等等.这样我们就能从传统单一的String类型中解脱出来.然而,应用是灵活的.我们对数据的需求是千变万化的.有些时候我们需要对表单的数据进行兼容处理. 例如日期格式的兼容: 中国的日期标注习惯采用yyyy-MM-dd格式,欧美

配置-spring mvc中把jsp放在web-inf报404错

问题描述 spring mvc中把jsp放在web-inf报404错 已经配置号xml文件 解决方案 p:prefix="/WEB-INTF/JSP/" : 配置的是前缀,所以这个目录下面不用加这一段路径了. p:suffix=".jsp":配置的是后缀,返回JSP页面的时候也不需要加后缀了. 详细请了解p:prefix,p:suffix的用法,**如还有问题请用HttpWatch调试,可以看到请求的路径** 解决方案二: 1 单独从配置文件来看..你的JSP文件应