@RequestMapping注解用法详解

之前案例中我们就已经使用过@RequestMapping注解了,但还有一些细节我还没讲到,所以在此将详细讲讲@RequestMapping注解的使用。

@RequestMapping

通过@RequestMapping注解可以定义不同的处理器映射规则。主要定义在方法之上,Controller类也可以使用。

1)URL路径映射

@RequestMapping("/xxx")

或者

@RequestMapping(value="/xxx")

value的值是数组,所以可以将多个url映射到同一个方法上。例如:

@RequestMapping(value={"/xx","/dd"})

2)Controller类请求限定

在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理。 例如:@RequestMapping放在类名上边,设置请求前缀。

@Controller
@RequestMapping("/hello")
public class HelloController {
          
   
	...
}

以上设置之后,所有/appName/hello下的路径请求全部分配到此COntroller中处理。 例如:

@Controller
@RequestMapping("/hello")
public class HelloController {
          
   
	@RequestMapping("/demo01.do")
	public ModelAndView update(){
          
   
		//返回视图
		return new ModelAndView("jsp/hello");
	}
}

当访问到 /appName/hello/demo01.do 时会返回jsp/hello视图

3)限定请求方法

可以使用该注解限定发送请求的方法

限定为GET方法:@RequestMapping(method = RequestMethod.GET)

修改以上案例:

@Controller
@RequestMapping("/hello")
public class HelloController {
          
   
	@RequestMapping(value="/demo01.do",method={
          
   RequestMethod.GET})
	public ModelAndView update(){
          
   
		//返回视图
		return new ModelAndView("jsp/hello");
	}
}

当使用post方式进行表单提交访问/appName/hello/demo01.do时会报错:

限定为post方法:@RequestMapping(method = RequestMethod.POST)

修改案例为:

@Controller
@RequestMapping("/hello")
public class HelloController {
          
   
	@RequestMapping(value="/demo01.do",method={
          
   RequestMethod.POST})
	public ModelAndView update(){
          
   
		//返回视图
		return new ModelAndView("jsp/hello");
	}
}

当使用get方式访问时会报错:

注意,不要忘记请求中文乱码问题,大家须谨慎对待。

经验分享 程序员 微信小程序 职场和发展