스프링 MVC 시작

HeeSeong·2021년 8월 2일
0
post-thumbnail

스프링 MVC 기본


스프링 MVC 설정


스프링을 사용하는 여러 이유가 있지만 한 가지 큰 이유는 스프링이 지원하는 웹 MVC 프레임워크 때문이다. 스프링 MVC의 설정 장법만 익혀두면 웹 개발에 필요한 다양한 기능을 구현할 수 있게 된다.

@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {

	@Override
	public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
		configurer.enable();
	}

	@Override
	public void configureViewResolvers(ViewResolverRegistry registry) {
		registry.jsp("/WEB-INF/view/", ".jsp");
	}
}

@EnableWebMvc 애노테이션은 스프링 MVC 설정을 활성화한다. configureDefaultServletHandling() 메서드는 DispatcherServlet의 매핑 경로를 '/'로 주었을 때, JSP/HTML/CSS 등을 올바르게 처리하기 위한 설정을 추가한 것이다. configureViewResolvers() 메서드는 JSP를 이용해서 컨트롤러의 실행 결과를 보여주기 위한 설정을 추가한 것이다.


@EnableWebMvc 애노테이션을 사용하면 내부적으로 다양한 빈 설정을 추가해준다. 이 설정을 직접하려면 수십 줄에 가까운 코드를 작성해야 한다. WebMvcConfigurer 인터페이스는 스프링 MVC의 개별 설정을 조정할 때 사용한다. configureDefaultServletHandling(), configureViewResolvers() 메서드는 WebMvcConfigurer 인터페이스에 정의된 메서드로 각각 디폴트 서블릿과 ViewResolver와 관련된 설정을 조정한다.


registry.jsp 코드는 JSP를 뷰 구현으로 사용할 수 있도록 해주는 설정이다. jsp 메서드의 첫 번째 인자는 JSP 파일 경로를 찾을 때 사용할 접두어이며, 두 번째 인자는 접미사이다. 뷰 이름의 앞과 뒤에 각각 접두어와 접미사를 붙여서 최종적으로 사용할 JSP 파일의 경로를 결정한다.


컨트롤러 구현


@Controller
public class HelloController {

	@GetMapping("/hello")
	public String hello(Model model,
			@RequestParam(value = "name", required = false) String name) {
		model.addAttribute("greeting", "안녕하세요, " + name);
		return "hello";
	}
}

@Controller 애노테이션을 적용한 클래스는 스프링 MVC에서 컨트롤러로 사용한다. @GetMapping 애노테이션은 메서드가 처리할 요청 경로를 지정한다. Model 파라미터는 컨트롤러의 처리 결과를 뷰에 전달할 때 사용한다. @RequestParam 애노테이션은 HTTP 요청 파라미터의 값을 메서드의 파라미터로 전달할 때 사용한다. model.addAttribute는 "greeting"이라는 모델 속성에 값을 설정한다. name 파라미터의 값을 사용한다. 마지막으로 컨트롤러의 처리 결과를 보여줄 뷰 이름으로 "hello"를 사용한다.

profile
끊임없이 성장하고 싶은 개발자

0개의 댓글