本文共 2019 字,大约阅读时间需要 6 分钟。
在SpringMVC开发中,@RequestMapping是一个非常重要的注解,它用于实现URL地址与请求资源之间的映射关系。本文将详细介绍@RequestMapping的使用方法及其在不同场景下的应用技巧。
@RequestMapping注解可以应用在类级别,这种情况下,所有方法所处理的请求都会以该映射路径作为父路径。以下是一个典型的示例:
@RequestMapping("/test")public class TestController { @RequestMapping("/mm") public String m() { return "mm"; }} 在上述示例中,访问http://localhost:8080/项目名/test/mm.jsp将被映射到TestController类中的m()方法。此外,类级@RequestMapping还可以用于定义应用程序的前缀,例如:
@RequestMapping也可以应用在方法级别,这种情况下,注解中的路径将作为特定方法的请求映射地址。以下是一个与类级RequestMapping一起使用的示例:
@RequestMapping("/mmm")public String mmm(@RequestParam(required=true, value="sid", defaultValue="100") String id) { System.out.println("id = " + id); return "mmm";} 在上述示例中,id参数是通过@RequestParam注解自动从URL中获取的。如果不指定required属性,默认会假设该参数是必需的。此外,还可以定义参数的默认值,以应对可能的缺失情况。
SpringMVC支持通过方法参数接收表单数据,并将其自动封装为JavaBean对象。以下是一个接收Student实体对象的示例:
@RequestMapping("/m")public String m(@RequestBody Student student) { System.out.println(student.getId()); System.out.println(student.getSname()); return "m";} 在这个示例中,@RequestBody注解会将HTTP请求体中的数据自动封装为Student对象,从而简化了前后端的数据传递流程。
SpringMVC允许开发者直接使用Servlet API中的HttpServletRequest和HttpServletResponse对象。以下是一个使用这些对象的示例:
@RequestMapping("/m")public void m(HttpServletRequest request, HttpServletResponse response) throws IOException { String id = request.getParameter("id"); String sname = request.getParameter("sname"); String t_id = request.getParameter("t_id"); PrintWriter out = response.getWriter(); out.println(id + " " + sname + " " + t_id); out.flush(); out.close();} 在这个示例中,request.getParameter()方法可以用来获取URL参数,response.getWriter()方法可以用来向客户端输出响应内容。
在RESTful风格中,URL路径参数可以直接映射到方法参数。以下是一个使用@PathVariable注解的示例:
@RequestMapping("/m01/{id}")public String m05(@PathVariable String id) { System.out.println("id = " + id); return "m01";} 在这个示例中,{id}路径参数会被自动映射到方法中的id参数,URL如http://localhost:8080/springmvc/m01/123会自动传递id=123的值。
转载地址:http://gacz.baihongyu.com/