Spring

· Spring
Spring MVC에 GET, POST 방식에 동일 이름 커맨드 객체 사용하는 방법을 알아보겠습니다. form 태그를 사용하려면 커맨드 객체가 반드시 존재해야 합니다. 폼 표시 요청이 왔을 때에도 커맨드 객체를 생성해서 모델에 저장해야 합니다. RegisterController 클래스의 handleStep2() 메서드는 다음과 같이 Model에 직접 객체를 추가합니다. @PostMapping("/register/step2")public String handleStep2(@RequestParam(value = "agree", defaultValue = "false") Boolean agree, Model model) { if(!agree) { return "register/step1"; ..
· Spring
ModelAndView를 통한 뷰 선택과 모델을 전달해 보는 것에 대해 알아보겠습니다. ModelAndView를 통한 뷰 선택과 모델 전달ModelAndView를 사용하면 이 두 가지를 한 번에 처리할 수 있습니다. 요청 매핑 애노테이션을 적용한 메서드는 String 타입 대신 ModelAndView를 리턴할 수 있습니다.  @Controller@RequestMapping("/survey")public class SUrveyController{ @GetMapping public ModelAndView form() { List questions = createQuestions(); ModelAndView mav = new ModelAndView(); mav.addObject("questions", q..
· Spring
처음 스프링 MVC를 이용해서 웹 개발을 하다 보면 사소한 설정 오류나 오타로 고생합니다. 이번 시간에는 입문 과정에서 겪게 되는 에러 사례를 정리해 보았습니다. 요청 매핑 애노테이션과 관련된 주요 익셉션 흔한 에러는 404 에러입니다. 요청 경로를 처리할 컨트롤러가 존재하지 않거나 WebMvcConfigurer를 이용한 설정이 없다면 404 에러가 발생합니다. 404 에러가 발생하면 - 요청 경로가 올바른지 - 컨트롤러에 설정한 경로가 올바른지 - 컨트롤러 클래스를 빈으로 등록했는지 - 컨트롤러 클래스에 @Controller 애노테이션을 적용했는지 뷰 이름에 해당하는 JSP파일이 존재하지 않아도 404에러가 발생합니다. 차이점으로 메시지에 해당 뷰가 없다고 표시됩니다. 위 그림과 같은 에러가 발생한다면..
· Spring
디폴트 핸들러와 HandlerMapping의 우선순위 dispatcher org.springframework.web.servlet.DispatcherServlet contextClass org.springframework.web.context.support.AnnotationConfigWebApplicationContext contextConfigLocation config.MvcConfig config.ControllerConfig 1 dispatcher / 위 web.xml 설정을 보시면 DispatcherServlet에 대한 매핑 경로를 다음과 같이 '/'로 주어져있습니다. 매핑 경로가 '/'인 경우 .jsp로 끝나는 요청을 제외한 모든 요청을 DispatcherServlet이 처리합니다. 즉 /i..
· Spring
JSP를 위한 ViewResolver 컨트롤러 처리 결과를 JSP를 이용해서 생성하기 위해 다음과 같은 설정을 사용해야 합니다. package config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; import or..
· Spring
WebMvcConfigurer 인터페이스와 설정 @EnableWebMvc 어노테이션을 사용하면 @Controller 어노테이션을 붙인 컨트롤러를 위한 설정을 생성합니다. 또한, @EnableWebMvc 어노테이션을 사용하면 WebMvcConfigurer 타입의 빈을 사용해서 MVC 설정을 추가로 생성합니다. package config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.E..
· Spring
DIspatcherServlet과 스프링 컨테이너 web.xml dispatcher org.springframework.web.servlet.DispatcherServlet contextClass org.springframework.web.context.support.AnnotationConfigWebApplicationContext contextConfigLocation config.MvcConfig config.ControllerConfig 1 dispatcher / encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /* 위의 web.xml 소스를 보면 DispatcherS..
· Spring
클라이언트와 핸들러 - 클라이언트의 요청을 실제로 처리하는 것은 컨트롤러 - DispatcherServlet은 클라이언트의 요청을 전달받는 창구역할 - DispatcherServlet은 클라이언트의 요청을 처리할 컨트롤러를 찾기 위해 HandlerMapping을 사용 컨트롤러를 찾아주는 객체는 ControllerMapping 타입이어야 할 것 같은데 실제는 HandlerMapping 스프링 MVC는 웹 요청을 처리할 수 있는 범용 프레임워크 - @Controller 어노테이션을 붙인 클래스를 이용해서 클라이언트 요청을 처리할 수 있지만, - 자신이 직접 만든 클래스를 이용해서 클라이언트의 요청을 처리할 수 있다. DispatcherServlet 입장에서 클라이언트 요청을 처리하는 객체의 타입이 반드시 @..
· Spring
이번 포스팅에서는 스프링 MVC 핵심 구성요소에 대해 알아보겠습니다. 위 그림에서 이라고 표시한 것은 스프링 빈으로 등록해야 하는 것을 의미합니다. 그림에서 중앙에 위치한 DispatcherServlet은 모든 연결을 담당합니다. 1) 웹 브라우저 요청이 들어오면 DispatcherServlet은 모든 연결을 담당합니다. 2) 직접 컨트롤러를 검색하지 않고 HandlerMapping이라는 빈 객체에게 컨트롤러 검색을 요청합니다. HandlerMapping은 클라이언트의 요청 경로를 이용해서 이를 처리할 컨트롤러 빈 객체를 DispatcherServlet에 전달합니다. 웹 요청 경로가 "/hello" 라면 등록된 컨트롤러 빈 중에서 "/hello" 요청 경로를 처리할 컨트롤러를 리턴합니다. Dispatch..
· Spring
[Spring] 스프링 MVC - 컨트롤러 구현 해보기 이번 포스팅에서는 클라이언트의 요청을 알맞게 처리할 컨트롤러와 처리 결과를 보여줄 JSP 코드를 통해 실습해 보도록 하겠습니다. 컨트롤러 구현 package chap09; import org.springframework.stereotype.Contro muscleking3426.tistory.com 앞서 컨트롤러가 생성한 결과를 보여줄 뷰 코드를 만들어보겠습니다. 뷰 코드는 JSP를 이용해서 구현해 볼 것입니다. 경로 : /src/main/webapp/WEB-INF/view HelloController.java package chap09; import org.springframework.stereotype.Controller; import org.s..
runnnerDevHong
'Spring' 카테고리의 글 목록