@RequestMapping 대해 궁금한것이 있습니다.
- 작성자 :
- 황*규
- 작성일 :
- 2016-07-28 11:11:44
- 조회수 :
- 2,859
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
현재 디렉토리방식 도메인과 멀티도메인 방식 2가지를 동시에 처리할려고 개발중인데요
http://localhost/main.do http://localhost/test/main.do 이런식으로요
그래서
@RequestMapping 부분에서는
@RequestMapping(value= {"/main.do","{test}/main.do"})
으로 2가지 url 를 처리할수 있도록 하고
@PathVariable 를 이용해서 아래와 같이 셋팅해주었습니다.
public String testAction(@PathVariable("test") HttpServletRequest request)
"test" 의 테스트 부분은
String test = request.getParameter("test");
으로 받는 부분이구요
그런데 이런식으로 하면
/main.do 으로 받을때는
Missing URI template variable 'test' for method parameter type [javax.servlet.http.HttpServletRequest]
에러가 나고
/test/main.do
으로 받을때는
Failed to convert value of type 'java.lang.String' to required type 'javax.servlet.http.HttpServletRequest'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [javax.servlet.http.HttpServletRequest]: no matching editors or conversion strategy found
이런 에러메세지가 나는데 원인을 모르겠습니다.
혹여나 @PathVariable("test") 이 부분에서
@PathVariable("test") String test
으로 하면 /test/main.do 접속은 되지만
main.do 이라는 것은
Missing URI template variable 'test' for method parameter type [javax.servlet.http.HttpServletRequest]
메세지가 떨어지더군요
혹시 이처럼 2가지 방식의 URL 를 처리할 수 있는 방법이 있는지요 궁금하네요
http://localhost/main.do http://localhost/test/main.do 이런식으로요
그래서
@RequestMapping 부분에서는
@RequestMapping(value= {"/main.do","{test}/main.do"})
으로 2가지 url 를 처리할수 있도록 하고
@PathVariable 를 이용해서 아래와 같이 셋팅해주었습니다.
public String testAction(@PathVariable("test") HttpServletRequest request)
"test" 의 테스트 부분은
String test = request.getParameter("test");
으로 받는 부분이구요
그런데 이런식으로 하면
/main.do 으로 받을때는
Missing URI template variable 'test' for method parameter type [javax.servlet.http.HttpServletRequest]
에러가 나고
/test/main.do
으로 받을때는
Failed to convert value of type 'java.lang.String' to required type 'javax.servlet.http.HttpServletRequest'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [javax.servlet.http.HttpServletRequest]: no matching editors or conversion strategy found
이런 에러메세지가 나는데 원인을 모르겠습니다.
혹여나 @PathVariable("test") 이 부분에서
@PathVariable("test") String test
으로 하면 /test/main.do 접속은 되지만
main.do 이라는 것은
Missing URI template variable 'test' for method parameter type [javax.servlet.http.HttpServletRequest]
메세지가 떨어지더군요
혹시 이처럼 2가지 방식의 URL 를 처리할 수 있는 방법이 있는지요 궁금하네요
A
안녕하세요. 표준프레임워크 센터 입니다.
두가지 방법을 같이 사용할 수 없습니다.
test/main.do 으로 받을때
@PathVariable("test") 에서
convert value of type 'java.lang.String' to required 로 설정 하고 있습니다.
spring api에서도 찾아 보시면 PathVariable 선언시 REQUIRED의 제약 조건이 있습니다.
http://docs.spring.io/spring/docs/current/javadoc-api/
redirect, forward 방법과 같이 우회하여 처리 하시면 될꺼 같습니다.
두가지 방법을 같이 사용할 수 없습니다.
test/main.do 으로 받을때
@PathVariable("test") 에서
convert value of type 'java.lang.String' to required 로 설정 하고 있습니다.
spring api에서도 찾아 보시면 PathVariable 선언시 REQUIRED의 제약 조건이 있습니다.
http://docs.spring.io/spring/docs/current/javadoc-api/
redirect, forward 방법과 같이 우회하여 처리 하시면 될꺼 같습니다.