controller 동적으로 url mapping하기 - 동적 주소 매핑
cotroller에서 RequestMapping을 사용해서 url을 매핑 시켜주는데
주소만 다르고 기본적인 컨트롤러가 같은경우나
여러가지 화면을 동적으로 매핑시켜주고 싶을때
많은 화면을 컨트롤러 리퀘스트매핑을 한개로 사용하고 싶을때
동적으로 주소를 매핑하면 편하고, 소스도 간결하게 줄일 수 있습니다.
딱히 어렵지도 않습니다.
그냥 ReauestMapping에 주소 경로 설정해줄때 {id값} 으로 설정해주고
@PathVariable("id값") 받고싶은형태 변수명 이렇게 입력해주시면 끝입니다.
아래 예제로 보시면.
@Controller
@RequestMapping(value = "/hompage")
public class MainController {
@RequestMapping(value = "/main/{urlid}")
public ModelAndView intro( @PathVariable("urlid") String urlid,
HttpServletRequest request,
HttpServletResponse response,
Model model
) throws Exception{
return new ModelAndView("/main/"+urlid);
}
}
위에는 일단 클래스에 /hompage/main/~.do 로 들어오는 url은 다 저걸 탑니다.
~에 들어오는 값들이 @PathVariable("urlid") String urlid 에서 보는 것처럼
String의 변수 urlid 값이 들어갑니다.
그래서 return을 해줄때 jsp파일명이 같다면 위와같이 경로를 잡아주고 urlid 를 사용하면 편합니다.
한두개만 성격이 다른화면이면
switch문이나 if문을 사용해서 해당 url에 맞게 수정해주면 될것 같습니다.
화면이 적은곳에서는 그냥해도 상관없는데 비슷한 류의 화면이 많은경우 사용하면 아주 편합니다!
'IT > JAVA' 카테고리의 다른 글
java(자바) - 정확한 숫자계산 할때 사용하는 빅데시멀(BigDecimal) 정리(형변환,선언,사칙연산) (0) | 2019.01.16 |
---|---|
java - 지정날짜의 월차이 차이 구하기 / 날짜 차이 구하기 / 윤년계산법 (0) | 2018.11.16 |
JAVA - 클라이언트 아이피 확인 (0) | 2018.08.23 |
java - 리스트 관련 / requestbody 한글깨짐 (0) | 2018.07.18 |
java 배열 순서 뒤집기. (0) | 2018.06.08 |