본문 바로가기

Spring 정리/Spring MVC 5

미니프로젝트

728x90
반응형

오늘의 공부

 

<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를 반환하고, 그 결과를 통해 적절한 대응을 한다.

728x90
반응형

'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