Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 책
- Xcode
- 에러
- missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
- Mapper
- git
- Swift
- 클라우드 서비스 특징
- SpringBoot
- java
- 깃
- 파이썬 웹크롤링
- 데이메이커
- 콜미동구
- 자바 파일업로드
- JavaScript
- 오류
- MySQL
- 동구
- 한줄평
- 줄거리
- git push
- 기록하는 동구
- 서평
- 클라우드 서비스
- Mac
- spring
- xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
- 독후감
- 자바스크립트
Archives
- Today
- Total
인생은 속도가 아니라 방향이다
[Spring] @Modelattribute 개념 정리 어떻게 작동하는걸까? 본문
반응형
Spring MVC에서 @ModelAttribute을 메소드의 파라미터로 사용할경우 프로그램이 어떻게 돌아가는지 궁금해졌다.
일단 내 컨트롤 단은 이렇게 생겼고 , test메소드안에 @ModelAttribute("test") 를 파라미터로 가지고있는 형태이다. 결과는 true,false를 반환하게 해놓았다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@Controller
public class TestController {
@Autowired
private TestService service;
@GetMapping("/test")
public String test(@ModelAttribute("test") Test test, Model model) {
model.addAttribute("result", service.getResult(test));
return "test";
}
}
|
여기는 내 화면단, 기본적으로 3개의 파라미터와 name값이 Test클래스의 인스턴스명들과 일치한다.(좀 이따가 설명하겠지만 자동으로 binding 시키려면 name값을 일치시켜줘야한다.)
@ModelAttribute 선언 후 자동으로 진행되는 작업들은 다음과 같다.
1. 파라미터로 넘겨 준 타입의 오브젝트를 자동으로 생성한다.
내 코드에서는 Test 클래스의 객체 test를 자동으로 생성한다. 이때 @ModelAttribute가 지정되는 클래스는 빈 클래스여야 하고 getter, setter가 만들어져야한다.
2.생성된 오브젝트(test) HTTP로 넘어 온 값들을 자동으로 바인딩한다.
http://localhost:3001/biz/test?testId=1&testName=1&testPwd=1
이렇게 들어오는 값들이 Test클래스의 testId, testName, testPwd 각각 해당변수의 setter를 통해서 해당 멤버 변수에로 binding된다.
3.마지막으로 @ModelAttribute 어노테이션이 붙은 객체가 (Test객체) 자동으로 Model객체에 추가되고 뷰단으로 전달된다.
@ModelAttribute("test") Test test 에서 가로안에있는 test 값을 통해서 뷰단에서 데이터들을 호출할수있다.
반응형
'백엔드(Back-end) > Spring' 카테고리의 다른 글
[Spring] 스프링부트 thymeleaf css 바로 반영하기 (0) | 2020.10.23 |
---|---|
[Spring] Springboot 엑셀 다운로드/업로드 (POI 라이브러리) ① (0) | 2020.07.31 |
[Spring] Bean을 찾지못해서 발생하는 오류 (0) | 2020.02.04 |
Comments