728x90
반응형
@RequestParam 과 @ModelAttribute은 매개 변수에 어노테이션을 사용할 수 있다.
밑의 test 예제로 공부해보았다.
@RequestParam
test1 페이지 -> test2 페이지
<a th:href="@{/test2(name=java)}"> </a>
타임리프 th:href 을 이용하여 java 데이터를 name이라는 이름으로 test2 컨트롤러에 넘긴다.
넘어오는 데이터를 받는 상세 방법
@RequestParam의 name은 넘어오는 데이터의 이름이다.
즉, name이라는 이름으로 넘어온 이름을 data로 적용시킬 수 있다. 따라서 data = java를 담고있다.
test2 페이지 -> test3 페이지
<a href="/test3"> test3로 이동.</a>
여기서는 그냥 컨트롤러 이동만 해주고, 데이터는 안넘겨 줬다.
@RequestParam의 required는 데이터를 필수로 받아올 것이라는 의미인데, true로 주면서
데이터가 없으면 오류를 출력한다.
즉, @RequestParam(required = true) : 반드시 파라메터가 넘어와야한다.
위 결과 페이지를 보다시피 required를 false로 주게되면 data 값에 null로 표기된다.
왜? 데이터를 이전페이지에서 안받고 넘겼으니까,, 그리고 페이지는 정상적으로 출력된다.
그럼 defaultValue 는 무엇일까?
보다 시피 data 값이 null 이었는데, java로 바뀐 것을 확인할 수 있다.
@ModelAttribute
커맨드 객체는 html로 자동으로 넘어갈 때 클래스명에서 앞글자만 소문자로 바꿔 넘어간다.
그래서 member를 가져가는게 아니라 memberVO를 가져가야한다.
근데 내가 바꾸고 싶다. 어떻게하냐?
넘어가는 커맨드 객체의 이름을 변경하면 된다.
커맨드 객체 앞에 @ModelAtrribute를 쓰면 (" 데이터 ") 데이터 값으로 넘어간다.
따라서 member로 넘어갈 것이다.
728x90
반응형
'✨ Back-end > Spring-Boot' 카테고리의 다른 글
[Spring] 의존성 주입(DI)과 제어의 역전(IOC) (1) | 2023.03.15 |
---|---|
[Spring] 타임리프 사용해서 폼(form)만들기 - th:object, th:field (0) | 2023.03.15 |
[Spring] 스프링에서 Mybatis Oracle 데이터베이스 연동하기 (0) | 2023.03.14 |
[Spring] 스프링 form태그 이용해서 페이지 이동 (0) | 2023.03.13 |
[Spring] 스프링 프로젝트 생성 방법 및 데이터 전달 (0) | 2023.03.13 |
댓글