Using dynamic route parameters in a controller method
Now we will define dynamic segments for a route and use them in the associated controller method. For example, we want the /user/5/name and /user/6/email routes to execute the same controller method with different arguments: showUserField(5, "name") and showUserField(6, "email"), respectively.
How to do it…
Use {} to enclose the dynamic route segments and @PathVariable to annotate the corresponding controller method arguments:
@RequestMapping("/user/{id}/{field}")
public void showUserField(@PathVariable("id") Long userId, @PathVariable("field") String field) {
...
}How it works…
A request for the /user/5/email route will execute the showUserField(5,"email") method. @PathVariable("id") Long userId casts the id route parameter to the userId method argument. Similarly, the field route parameter is passed as String to showUserField().
An incorrect route such as...