ReqBindingCtl.java

package in.co.sunrays.ctl;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;

/**

* Binds request parameters to method arguments.

*

* @author SUNRAYS Developer

* @version 1.0

* @Copyright (c) SUNRAYS Technologies

*/

@Controller

// URL /UrlMapping is mapped with entire class

@RequestMapping(value = "/ReqBinding")

public class ReqBindingCtl {

/**

* Example method to receive request parameter using @RequestParam

* annotation.

*

* Using @RequestParam annotation you can receive as many parameters as you

* want.

*

* Use http://localhost:8080/STMavenSpringMVC/UrlMapping/param

*

* @return View Name

*/

@RequestMapping(value = "/param", method = RequestMethod.GET)

public String requestParam(@RequestParam String message, Model model) {

model.addAttribute("message", "Request Parameter : " + message);

return "ReqBindingView";

}

/**

* Specifies request parameter name.

*

* @param message

* @param model

* @return

*/

@RequestMapping(value = "/param1", method = RequestMethod.GET)

public String requestParam1(@RequestParam("message") String message,

Model model) {

model.addAttribute("message", "Request Parameter : " + message);

return "ReqBindingView";

}

/**

* Specifies request parameter name using annotation attribute name.

*

* @param message

* @param model

* @return

*/

@RequestMapping(value = "/param2", method = RequestMethod.GET)

public String requestParam2(

@RequestParam(value = "message") String message, Model model) {

model.addAttribute("message", "Request Parameter : " + message);

return "ReqBindingView";

}

/**

* Request and Method parameter names are different.

*

* @param message

* @param model

* @return

*/

@RequestMapping(value = "/param3", method = RequestMethod.GET)

public String requestParam3(@RequestParam("msg") String message, Model model) {

model.addAttribute("message", "Request Parameter : " + message);

return "ReqBindingView";

}

/**

* Makes request parameter optional

*

* @param message

* @param model

* @return

*/

@RequestMapping(value = "/param4", method = RequestMethod.GET)

public String requestParam4(

@RequestParam(value = "message", required = false) String message,

Model model) {

model.addAttribute("message", "Request Parameter : " + message);

return "ReqBindingView";

}

/**

* Type converstion

*

* @param id

* @param model

* @return

*/

@RequestMapping(value = "/param5", method = RequestMethod.GET)

public String requestParam5(

@RequestParam(value = "id", required = false) long id, Model model) {

model.addAttribute("message", "Request Parameter : " + id);

return "ReqBindingView";

}

}