Spring documentation says:
Use the @RequestParam annotation to bind request parameters to a method parameter in your controller.
AFA
It works with posts too. Can you post your method body and you html?
Instead of @RequestParam
which binds to a single form value, you can use @ModelAttribute
annotation and bind to the whole object. But it should be used in conjunction with form
or bind
Spring's JSTL.
Example: - controller that calls JSP-page, it should add objects to a Model:
@RequestMapping(value="/uploadForm", method=RequestMethod.GET)
public String showUploadForm(Model model) {
Artist artist = new Artist();
Track track = new Track();
model.addAttribute("artist", artist);
model.addAttribute("track", track);
return "uploadForm";
}
Track Title *:
Controller that processes form submission;
@RequestMapping(value="/uploadToServer", method=RequestMethod.POST)
public String uploadToServer(@ModelAttribute("artist") Artist artist, @ModelAttribute("track") Track track) { .... }
Here I found a good explanation of using @ModelAttribute annotation - krams915.blogspot.ca
Yes it works perfectly with post method too. you can mention the method attribute of @RequestParam
as RequestMethod=POST
. Here is the code snippet
@RequestMapping(value="/register",method = RequestMethod.POST)
public void doRegister
(
@RequestParam("fname") String firstName,
@RequestParam("lname")String lastName,
@RequestParam("email")String email,
@RequestParam("password")String password
)