Spring MVC - URL Mapping
2020. 9. 5. 20:38ㆍJava/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 |