, 나는 3 경로 변수를 얻을려고 : 봄 여러 경로 변수 내 봄 컨트롤러에서
@RequestMapping("{language}/{country}/{term}/catalogue") - @PathVariable String language, @PathVariable String country, @PathVariable String term
불행하게도이 서블릿에 의해 인식되지 않습니다.
URI를 바인딩 할 수있는 방법이 있습니다 (예 :
@RequestMapping("**/catalogue")
및 @RequestMapping("{language}/{country}/catalogue")
이 작동하지만 세 번째 경로 변수를 사용하면 작동이 중지됩니다.
컨트롤러 자체도 특정 경로에 매핑됩니다.
경로 변수에 대한 제한이 있습니까? ?는 3 개 정의 된 값보다 더 예를 들어 2 와일드 카드보다 구체적인 다른 와일드 카드 (예 : @RequestMapping("**"))
높은 평가 될 것입니다 가능하지만 와일드 카드는 실천의 마지막 일치하는 옵션한다
나타나는 오류에 대해서는 :..
첫째,과 . 와일드 카드 매핑, 그들은 내가 사용하지 않도록 설정하면 와일드 카드가 org.springframework.web.HttpRequestMethodNotSupportedException
오류가 발생합니다 매핑들과 일치한다
15:42:53,881 DEBUG [http-bio-18091-exec-31] (org.springframework.web.servlet.DispatcherServlet) - Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'errors/exception'; model is null
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodResolver.resolveHandlerMethod(AnnotationMethodHandlerAdapter.java:665)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:431)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at [device detection filter]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
컨트롤러 방법.
@RequestMapping(value = "{language}/{country}/{term}/catalogue", method = RequestMethod.GET)
public ModelAndView catalogue(HttpServletRequest request, HttpServletResponse response, @PathVariable("language") String language, @PathVariable("country") String country, @PathVariable("term") String term, @RequestParam(value = "d", defaultValue = "") String device, @RequestParam(value = "embedded", defaultValue = "false") String embedded, @RequestParam(value = "id", defaultValue = "") String idString, @RequestParam(value = "nr", defaultValue = "") String nr) {
로는 컨트롤러 (미안 해요, 난 여기 컨트롤러에서 전체 코드를 게시 할 수 없습니다)에서 모든 RequestMappings에게 여기에, 질문 있습니다 도움을
@Controller
@RequestMapping("xyz/")
public class Controller {
@RequestMapping(value = "{language}/{country}/{term}/catalogue", method = RequestMethod.GET)
@RequestMapping("**")
@RequestMapping("{language}/{country}/product")
@RequestMapping("{language}/{country}/product-detail")
@RequestMapping("{language}/{country}/product-search")
@RequestMapping("{language}/{country}/dealer-search")
@RequestMapping("{language}/{country}/product-finder")
@RequestMapping("{language}/{country}/table")
@RequestMapping("**/languages")
@RequestMapping("**/chooseLanguages")
}
감사합니다.
컨트롤러 클래스 '@ RequestMapping' 및 기타 메소드'@Reque stMapping'이 관련되어 있습니다. –
@Controller @RequestMapping ("xyz") – Noctem
오류는 어떻게됩니까? 언제 발생합니까? 요청을 보낼 때 Spring으로부터 404 응답을 얻고 있습니까? 아니면 응용 프로그램이 시작되지 않았습니까? –