Java Reference
In-Depth Information
47. @ModelAttribute("authorList")
48. public List<Author> populateAuthorList() {
49. AuthorService authorService = new AuthorService();
50. return authorService.getAuthorList();
51. }
52.
53. @RequestMapping(method = RequestMethod.POST)
54. public String processSubmit(@ModelAttribute("book") Book book, BindingResult result,
SessionStatus status) {
55. BookService bookService = new BookService();
56. bookService.createBook(book);
57. return "redirect:/list_book.html";
58. }
59. }
Line 22 : The AddBookController class is annotated with
@RequestMapping("/addBook.html") , which means that all the methods in
this class will handle the request for the URL "/ addBook.html" .
Line 24 : The initialization for binding is done by annotating the method name
with @RequestMapping(method=RequestMethod.GET) .
Line 25 : initForm() handles the GET request type and shows the add new
book form.
Line 28 : initForm() also adds a new instance to the model map so that the new
instance can be associated with the form.
Line 32 : Binding is defined by annotating the method name with @InitBinder .
Annotating controller methods with
@InitBinder allows configuring the web data
binding directly within the controller class. @InitBinder identifies methods that
initialize the WebDataBinder that is used to populate the command and form object
arguments of annotated handler methods. Such init-binder methods support all
arguments that @RequestMapping supports, except for command/form objects and
the corresponding validation result objects. Init-binder methods that are declared
must not have a return value. Thus, they are usually declared as void.
Line 33 : Typical arguments include WebDataBinder in combination with WebRequest
or java.util.Locale , allowing code to register context-specific editors.
Data binding is configured using the
WebDataBinder class. WebDataBinder is
a special DataBinder for data binding from web request parameters to
JavaBean objects.
Spring injects an instance of this class into any controller method that has been
annotated with @InitBinder . This object is then used to define the data binding
rules for the controller.
WebRequest allows for generic request parameter access as well as
request/session attribute access without ties to the native Servlet API.
Line 34 : setDisallowedFields() registers the fields that are not allowed
for binding.
 
Search WWH ::




Custom Search