반응형

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에 맞게 수정해주면 될것 같습니다.


화면이 적은곳에서는 그냥해도 상관없는데 비슷한 류의 화면이 많은경우 사용하면 아주 편합니다!


반응형

+ Recent posts