@RequestMapping:既可以标识在方法上也可以标识在类上
@RequestMapping(value = "/hello") public void hello(){ System.out.println("hello,SpringMVC"); }
@Controller @RequestMapping(value = "/text") public class HelloController { @RequestMapping(value = "/hello") public void hello(){ System.out.println("hello,SpringMVC"); } }
value属性:它是一个String类型的数组,即当前浏览器所发送请求的请求路径匹配value属性中的任何一个值,则当前请求就会被注解所标识的方法进行处理
method属性是RequestMethod类型的数组,当前浏览器所发送请求的请求方式匹配method属性中的任何一中请求方式,则当前请求就会被注解所标识的方法进行处理
@RequestMapping( value = {"/hello","/abc"}, method= {RequestMethod.GET,RequestMethod.POST} ) public void hello(){ System.out.println("hello"); }
@GetMapping、@PostMapping、@DeleteMapping、@PutMapping
@GetMapping:表示当前发送的请求方式为get请求,value属性为请求地址
后面三个注解也是如此,表示当前发送的请求方式,value属性为请求地址
在传统发送带参数的请求方式:/helloUser?id=1
在rest风格中将参数作为请求路径发送:/helloUser/1
需要在@RequestMapping注解value属性中所设置的路径中,使用{xxx}的方式表示路径中的数据
在通过@PathVariable注解,将占位符所标识的值和控制器方法的形参进行绑定
测试
@RequestMapping("/rest/helloUser/{username}/{id}") public void testRest(@PathVariable("id") Integer id , @PathVariable("username") String username){ System.out.println(id);//1 System.out.println(username);//username }
@RequestParam注解:将请求参数和控制器方法的形参绑定
value:设置和形参绑定的请求参数名字
required:设置是否必须传输value所对应的请求参数,默认值为true,表示value所对应的请求参数必须传输,否则页面报错
若设置为false,则表示value所对应的请求参数不是必须传输,若没传输,则形参值为null
defaultValue:设置当没有传输value所对应的请求参数时,为形参设置的默认值
@RequestMapping("/param") public void testgetParamTwo( @RequestParam(value = "name",required = false,defaultValue = "hello") String username, String password ) { System.out.println("username = " + username); System.out.println("password = " + password); }