[HomeController.java]
@Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { System.out.println("home"); return null; } }
@RequestMapping 의 특정 주소 "/"로 요청(get)이 들어올경우 해당 메서드 실행!!
[servlet-context.xml]
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 스캔한 패지키 내부의 클래스 중 Controller 어노테이션을 가지고 있는 클래스들을 Controller로 로딩하도록 한다 --> <annotation-driven/> <!-- 스캔할 bean들이 모여있는 패키지를 지정한다. --> <context:component-scan base-package="com.demo.controller"/> </beans:beans>
결과
[index.jsp]<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>Hello MVC index.jsp</h1> </body> </html>
[HomeController.java]
@Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { System.out.println("home"); return "/WEB-INF/views/index.jsp"; // <-- 변경!! } }
결과
1) xml설정
[servlet-context.xml]
<!-- Controller의 메서드에서 반환하는 문자열 앞 뒤에 붙힐 경로 정보를 셋팅한다. --> <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean>
2) 컨트롤러 경로 설정
[HomeController.java]
@Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { System.out.println("home"); return "index"; // <-- 변경!! } }
servlet-context.xml 설정을 통해 컨트롤러에서 주소값을 "/WEB-INF/views/index.jsp"에서 "index"으로 넣어도 index.jsp파일에 찾아가게 해준다!!
이러한 설정 덕분에 모든 JSP파일 주소 작성 시 간편하게 작성가능!!!
1) 폴더 생성
2) xml 설정
[servlet-context.xml]
<!-- 정적파일(이미지, 사운드, 동영상, JS, CSS 등등) 경로 셋팅 --> <resources mapping="/**" location="/resources/" />
3) jsp 태그 추가
[index.jsp]
<body> <h1>Hello MVC index.jsp</h1> <img src="image/spring.svg"> </body>
결과
컨트롤러 주소가 아니므로( = 요청이 없으므로) resources폴더 안에 찾게 설정해줌