-
55일 차 Spring MVC 어노테이션 ( 실전에 제일 가까움 )삼성SDS_멀티캠퍼스/Spring Frame Work 2015. 11. 25. 10:32반응형
오늘 작성할 스프링MVC 어노테이션을 이용한 프로젝트는
실전에 가장 많이쓰이기 때문에 주의깊게 봐야합니다.
우선 클래스에서 컨트롤러 인터페이스를 구현하는 방식으로
web.xml에 dispatcher를 정의하고 매핑시킵니다
<web.xml>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet;</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<dispatcher-servlet.xml>
그다음 스프링빈설정파일에서
Namespaces에 들어가서
에노테이션을 사용하기 위해 context 컨피그레이션 파일에 체크를 합니다.
<context:component-scan base-package="controller"></context:component-scan>
그리고 이거 한줄만 추가해주면 앞으로는 controller라는 패키지에 있는 모든 클래스들을 매핑할 수 있게 합니다.
이렇게 하시면 됩니다
<HelloController.java>
매핑하였으면
controller 패키지에 클래스들을 추가합니다.
저는 HelloController라는 클래스를 추가하겠습니다.
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("hello.do")
public ModelAndView hello() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", "hello");
modelAndView.setViewName("hello.jsp");
return modelAndView;
}
이 작업에 대해서 설명하자면
생성된 클래스의 상단에 @Controller를 임포트시켜서 스프링설정파일과 연결시킵니다.
그 후에 자신이 만들고 싶은 함수명의 위에 @RequestMapping을 임포트시켜서
어떤 이름이 들어오면 해당 동작을 할지를 정합니다.
저는 hello.do라고 명명하겠습니다.
그리고 ModelAndView를 이용하여 어제(54일차)와 같이 작업을 해주시면 됩니다.
return값으로 ModelAndView의 객체를 리턴합니다
<hello.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
에노테이션을 이용한 스프링MVC<br>
${msg}
</body>
</html>
컨트롤러에서 setViewName을 이용하여 hello.jsp로 값을 전달시켰습니다.
hello.jsp에서는 EL표현식을 이용하여 컨트롤러에서 보낸 값을 보여주기만 하면 되는 View입니다.
그렇기 때문에 body태그안에
${ 컨트롤러에서 보낸 키 값 } 을 쓰시면 됩니다.
결과 창
지금 예제에서는 컨트롤러에 하나의 함수(hello)만 구현했는데
그 밑에 더 많은 종류의 함수를 추가해도 괜찮습니다.
@RequestMapping에서의 이름만 겹치지 않게 처리해주시면 얼마를 추가하던지 상관없습니다만
좋은 방법은 아니라고 합니다.
더 좋은 방법이 무엇인지는 다음 포스팅에 올리겠습니다.
반응형'삼성SDS_멀티캠퍼스 > Spring Frame Work' 카테고리의 다른 글
57일 차 Spring MVC 실전에 최대한 가깝게 (Model 패키지 없이) (0) 2015.11.27 55일 차 Spring MVC 어노테이션 ( 실전에 제일 가까움 ) 2번째 (0) 2015.11.25 54일 차 Spring MVC (ModelAndView) (0) 2015.11.24 47일 차 Spring(스프링 프레임워크) jdbc연결 (0) 2015.11.13 45일 차 Spring(스프링 프레임워크) AOP 설정을 xml로 하기 (0) 2015.11.11