SpringBoot processes parameter annotation in url, springbooturl
1. describes how to process annotation of parameters in a url.
@ PathVaribale: Get the data in the url
@ RequestParam: Get the value of the Request Parameter
@ GetMapping combination annotation, abbreviated as @ RequestMapping (method = RequestMethod. GET)
(1) PathVaribale obtains the data in the url.
Let's look at an example. If we need to obtain the id value in Url = localhost: 8080/hello/id, the implementation code is as follows:
1 @RestController2 public class HelloController {3 @RequestMapping(value="/hello/{id}/{name}",method= RequestMethod.GET)4 public String sayHello(@PathVariable("id") Integer id,@PathVariable("name") String name){5 return "id:"+id+" name:"+name;6 }7 }
Enter the address: localhost: 8080/hello/100/helloworld in the browser and print it out on the html page:
Id: 81
Similarly, if we need to obtain multiple parameters in the url, we can do it as shown in the following code.
1 @RestController2 public class HelloController {3 @RequestMapping(value="/hello/{id}/{name}",method= RequestMethod.GET)4 public String sayHello(@PathVariable("id") Integer id,@PathVariable("name") String name){5 return "id:"+id+" name:"+name;6 }7 }
Enter the address: localhost: 8080/hello/100/helloworld in the browser and print it out on the html page:
Id: 100 name: helloworld
Above, the prerequisite for obtaining URL parameters through @ PathVariable annotation is that we know what the url format is like.
Only by knowing the url format can we get the parameter values at the corresponding position through the same format in the specified method.
Generally, the url format is: localhost: 8080/hello? Id = 98. In this case, how can I obtain the id value? This requires @ RequestParam.
2. @ RequestParam get the value of the Request Parameter
For example:
@RestControllerpublic class HelloController { @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(@RequestParam("id") Integer id){ return "id:"+id; }}
Enter the address: localhost: 8080/hello? in the browser? Id = 1000. the following result is displayed:
Id: 1000
In the browser, enter the address: localhost: 8080/hello? Id, that is, no specific value of id is input. The returned result is null. The test results are as follows:
Id: null
However, when we enter the address localhost: 8080/hello in the browser, that is, if the id parameter is not entered, the following error will be reported:
Whitelable Error Page Error
@ RequestParam annotation provides us with this solution, that is, when users are not allowed to enter the id, use the default value. The specific code is as follows:
1 @ RestController2 public class HelloController {3 @ RequestMapping (value = "/hello", method = RequestMethod. GET) 4 // required = false indicates that the id parameter can be left blank in the url. The default parameter 5 public String sayHello (@ RequestParam (value = "id", required = false, defaultValue = "1") Integer id) {6 return "id:" + id; 7} 8}
If there are multiple parameters in the url, that is, similar to localhost: 8080/hello? URLs such as id = 98 & name = helloworld can also be processed in this way. The Code is as follows:
1 @RestController2 public class HelloController {3 @RequestMapping(value="/hello",method= RequestMethod.GET)4 public String sayHello(@RequestParam("id") Integer id,@RequestParam("name") String name){5 return "id:"+id+ " name:"+name;6 }7 }
The test result in the browser is as follows: localhost: 8080/hello? Id = 1000 & name = helloworld address, the following content is displayed:
Id: 1000 name: helloworld
3. @ GetMapping combination Annotation
@ GetMapping is a composite annotation, abbreviated as @ RequestMapping (method = RequestMethod. GET. This annotation maps HTTP Get to a specific processing method.
You can use @ GetMapping (value = "/hello") to replace @ RequestMapping (value = "/hello", method = RequestMethod. GET ). This allows us to streamline the code.
1 @ RestController2 public class HelloController {3 // @ RequestMapping (value = "/hello", method = RequestMethod. GET) 4 @ GetMapping (value = "/hello") 5 // required = false indicates that the id parameter can be left blank in the url, in this case, use the default parameter 6 public String sayHello (@ RequestParam (value = "id", required = false, defaultValue = "1") Integer id) {7 return "id: "+ id; 8} 9}
4. PostMapping combination annotation:
The method is the same as GetMapping.
Reference: http://blog.csdn.net/u010412719/article/details/69788227