URI Template


URI Template  = URI (URL ) + one or more variable.

URI Template is a URI  with one or more variable.

For example : http://localhost:8080/login/{usename}
here URI is http://localhost:8080/login/ and variable is {username}
If we assign the variable(username) the value sriram, the URI Template will be: http://localhost:8080/login/sriram


In spring 3, if you want to access parts of a request URL, use URI templates in the @RequestMapping path value.

In Controller method we need to use @PathVariable (method parameter annotation) to indicate that a method parameter should be bound to the value of a URI template variable.

Following code shows, how to use @PathVariable in controller
  
@RequestMapping( value="/login/{usename}" method = RequestMethod.GET)
public String loginForm(@PathVariable String usename,  ModelMap model) {
 System.out.println("user name" +username);
  LoginForm loginForm = new LoginForm();
  model.addAttribute("loginForm",loginForm);
  return "loginForm";
 }

When a request comes in for /login/sriram, the value sriram is bound to the method parameter String username.

 We can also bind the URI template variable with method parameters as below
   
 @RequestMapping( value="/login/{usename}" method = RequestMethod.GET)
public String loginForm(@PathVariable("username") String userId,  ModelMap model) {
 System.out.println("user name" +userId);
  LoginForm loginForm = new LoginForm();
  model.addAttribute("loginForm",loginForm);
  return "loginForm";
 }

Binding more than one variable
   
 @RequestMapping( value="/login/{usename}/employee/{employeeId}" method = RequestMethod.GET)
public String loginForm(@PathVariable("username") String userId, @PathVariable("employeeId") String employeeId,  ModelMap model) {
 System.out.println("user name" +userId);
 System.out.println("employee Id" +employeeId);
  LoginForm loginForm = new LoginForm();
  model.addAttribute("loginForm",loginForm);
  return "employeeLoginForm";
 }

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...