Spring MVC - URL Mapping

2020. 9. 5. 20:38Java/Spring

반응형

지난번에 세팅한 Spring에서 아래와 같이 a링크를 통해서 페이지를 이동하면 오류가 난다.

 

<%@ 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>
<a href="test1">test1</a>
</body>
</html>

지난번 세팅에서 / 는 Controller에서 mapping을 해주었지만 새로만든 test1는 매핑이 되어있지 않아서 나타나는 오류이다.

 

이 문제를 해결하기 위해 우리는 페이지 이동에 대한 mapping을 컨트롤러에서 해줘야 한다.

 

@Controller
public class MappingController {
	@RequestMapping(value="/test1",method = RequestMethod.GET)
	public String test1() {
		return "test1";
	}
	@RequestMapping(value="/test2",method = RequestMethod.GET)
	public String test2() {
		return "test2";
	}
	@RequestMapping(value="/test3",method = RequestMethod.GET)
	public String test3() {
		return "test3";
	}
}

위와 같이 컨트롤러를 생성하면  /test1 주소값의 요청이 들어오면 test1() 메서드가 실행된다. 이 메서드는 test1.jsp를 리턴한다.

 

/test2의 주소값이 요청되면 test2() 메서드가 실행되고 이 메서드는 test2.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>
<a href="sub/sub1">sub1</a>
<a href="sub/sub2">sub2</a>
<a href="sub/sub3">sub3</a>
</body>
</html>

위와 같이 이동하는 경로가 하위 폴더인 경우가 있다.

 

이 경우에는 Controller에서 동일한 폴더명을 반복하여 작성하게 되는데 이런 중복을 막기위해서 아래와 같이 공통된 부분을 묶어서 작성한다.

 

@Controller
@RequestMapping("/sub")
public class SubController {
	@RequestMapping(value="/sub1",method = RequestMethod.GET)
	public String sub1() {
		return "sub/sub1";
	}
	@RequestMapping(value="/sub2",method = RequestMethod.GET)
	public String sub2() {
		return "sub/sub2";
	}
	@RequestMapping(value="/sub3",method = RequestMethod.GET)
	public String sub3() {
		return "sub/sub3";
	}
}

@RequestMapping("/sub") 을 사용하게 되면 모든 mapping value 앞에 /sub가 적용이 된다.

 

 

반응형

'Java > Spring' 카테고리의 다른 글

Spring MVC - 파라미터 추출  (0) 2020.09.06
Spring MVC - 요청방식(Get,Post)  (0) 2020.09.05
Spring MVC - 기본세팅(3) - JAVA  (0) 2020.09.04
Spring(MVC) - 기본세팅(2) - XML  (0) 2020.09.03
Spring(MVC) - 기본세팅(1)  (0) 2020.09.02