오늘의 공부
<5/29>
(@RequestParam), (@ModelAttribute) 매개변수 넘어왔을 때, request객체에 등록되는 것은 ModelAttribute뿐이다. @RequestParam의 변수를 jsp에서도 사용하고 싶으면
(Model model)을 주입받아 model.addAttribute를 사용하여 jsp에 넘긴다.
form 커스텀에서 modelAttribute를 통해서 값들을 넘기지 않으면, request 객체에 담기지 않는다.
ex)form 태그 안에 value에 ${}을 사용하면 파라미터에 넘어오지 않는다.
form 커스텀에서 modelAttribute를 넘기기 위해서는 아무내용없는 Bean 객체를 (@RequestParam)에 보낸다.
ex) 글쓰기를 한 내용을 파라미터로 넘기기 위해 form 태그를 만들 것이다.(jsp파일)
이 곳에 선언된 ${}은 파라미터로 넘기기 위한 것이기도 하지만 처음 이 페이지에 들어왔을 때 값을 설정해야 한다.
@RequestParam으로 넘기면, 자동으로 null값으로 설정되어 보내진다.
Interceptor를 통해 검사할 경로를 추가할 수도, 제외할 수도 있다.
@Autowired를 쓸 수 없어 직접 생성자로 Bean을 주입받는다.
prehandle에서 조건검사 후 실패 시 response.sendirect로 주소를 이동한다.
ex) 로그인하지 않고 글을 수정, 삭제하려는 요청이 있다면 검사해서 막는다.
(+nav 메뉴목록처럼 항상 표시되어야 하는 부분은 중복 코드이므로 따로 Interceptor로 뺄 수 있다.)
<5/30>
@RestController를 통해 json 데이터를 이용한 ajax통신을 할 수 있다.
return 시 @Controller가 jsp를 반환하는 것과 다르게, 내가 설정한 문자열이 값으로 넘어가다.
ex) 아이디 중복검사에서 true/false를 반환하여 중복을 체크한다. ajax 요청을 통해, service에서 해당 아이디로 DB를 조회하여 중복인지 아닌지 확인하여 true/false를 반환하고, 그 결과를 통해 적절한 대응을 한다.
'Spring > Spring MVC 5' 카테고리의 다른 글
생성자 vs setter vs field 의존성 주입 (0) | 2022.07.15 |
---|---|
DispatcherServlet & ContextLoaderListener (0) | 2022.07.12 |
Restful API (0) | 2020.05.28 |
MyBatis (0) | 2020.05.27 |
예외처리 (0) | 2020.05.27 |