참고) Bean 설정이 아닙니다.
Controller에서 매핑된 URL로 메서드가 실행되는데요~
이 경우 파라메터에 모델을 선언했다면 URL queryString에 있는 프로퍼티 값이 모델 멤버(setter)와 동일하다면 자동으로 Binding됩니다.
- @ModelAttribute를 생략해도 됩니다.
Controller에서 매핑된 URL로 메서드가 실행되는데요~
이 경우 파라메터에 모델을 선언했다면 URL queryString에 있는 프로퍼티 값이 모델 멤버(setter)와 동일하다면 자동으로 Binding됩니다.
public class Foo { private int id; public void setId(int id) { this.id = id; } public int getid() { return this.id; } } @Controller public class FooController { @RequestMapping("/foo") public String getFooView(Foo fooModel) { return "foo"; } }- 인자가 없는 기본 생성자는 자동으로 데이터가 매칭됩니다.
- @ModelAttribute를 생략해도 됩니다.
기본 생성자가 없는 모델객체는?
위 코드로 그대로 진행하면 에러가 발생합니다.No default constructor found; nested exception is java.lang.NoSuchMethodException: 모델 클래스 이름수정된 코드()
public class Foo { private int id; public Foo(int id) { this.id = id; } public int getid() { return this.id; } } @Controller public class FooController { @ModelAttribute("foo") public Foo getFoo() { return new Foo(10); } @RequestMapping("/foo") public String getFooView(@ModelAttribute("foo") Foo fooModel) { return "foo"; } }- 직접 Controller에 ModelAttribute 설정을 하면 기본 생성자가 없이 직접 생성하여 대응할 수 있습니다.
'Java > Spring' 카테고리의 다른 글
StreamingResponseBody 사용시 주의점 (0) | 2018.07.10 |
---|---|
[Spring] Stream 형태로 Response 응답 주기 (feat. MyBatis, Observer) (3) | 2017.11.27 |
RestTemplate Encoding (0) | 2016.07.28 |
브라우저에서 PUT, DELETE method 요청하기 (0) | 2016.07.21 |
[SpringBoot] Address already in use: JVM_Bind (0) | 2016.07.21 |