package boottests.controllers; import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.*; @ControllerAdvice class BindingControllerAdvice { @InitBinder void initBinder(WebDataBinder binder) { binder.initDirectFieldAccess(); } }Here's how my domain model looks like:
package boottests; public class Person { private final String firstname; private final String lastname; public Person(String firstname, String lastname) { this.firstname = firstname; this.lastname = lastname; } @Override public String toString() { return firstname + " " + lastname; }}And here's my Controller:
package boottests.controllers; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*; import boottests.Person; @Controller @RequestMapping("/person") class PersonController { @GetMapping String postForm(Person person) { System.out.println("YYY " + person + " YYY"); return "/"; } }And of course, my form, on index.html:
<form action="person" > Lastname: <input type="text" name="lastname"/> <br/> Firstname: <input type="text" name="firstname"/> <br/> <input type="submit" value="Submit"/> </form>
If you run this on Spring Boot, you'll see that the form parameters were correctly bound to the fields of the domain model.
No comments:
Post a Comment