[SPRING] spring-mvc : "a / b / {c}"형식으로 URI 템플릿을 매핑하는 방법은 무엇입니까?
SPRINGspring-mvc : "a / b / {c}"형식으로 URI 템플릿을 매핑하는 방법은 무엇입니까?
"/ a / b"또는 "/ a / {b}"형태로 URI 템플릿을 얻을 수 있습니다. 하지만 "/ a / b / {c}"를 시도하면 HTTP 404와 메시지가 "[URI가있는 HTTP 요청에 대해 매핑이 없습니다 [/ myapp / a / b / c]"형식으로 나타납니다. .. "그러나 나는 로그에서이 메시지를 볼 수 있는데, 이것은 매핑이 정확하다고 믿게 만든다 ...?
INFO: Mapped URL path [/a] onto handler 'AController'
Nov 16, 2010 12:18:39 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/a/*] onto handler 'AController'
Nov 16, 2010 12:18:39 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
나는 spring-mvc docs에있는 모든 예제가 "/ a / {b}"또는 / a / {b} / c / {d} "형식의 URI 템플릿을 보여주고 있음을 확인했습니다."/ a / b / c} "불가능합니다. web.xml에서 구성해야 할 일이 있습니까? 아니면 일부 패턴이 매핑되지 않도록 할 수 있습니까? 현재 Dispatcher 서블릿은 다음에 매핑됩니다.
<url-pattern>/</url-pattern>
컨트롤러는 다음과 같습니다.
@Controller
public class AController {
@RequestMapping(value = "/a/b/{c}", method = RequestMethod.GET)
public ModelAndView show() {
ModelAndView modelAndView = new ModelAndView("A");
return modelAndView;
}
}
http : // localhost : 8080 / myapp / a / b / c에 액세스하면 404가 반환되고 로그에 표시됩니다.
Nov 16, 2010 12:19:06 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/myapp/a/b/c] in DispatcherServlet with name 'dispatcher'
내 URI 패턴을 올바르게 매핑하는 방법에 대한 아이디어가 있습니까?
해결법
-
==============================
1.이것은 ControllerClassNameHandlerMapping이 핸들러 맵핑으로 사용될 때만 발생합니다.
이것은 ControllerClassNameHandlerMapping이 핸들러 맵핑으로 사용될 때만 발생합니다.
주석 된 컨트롤러는 일반적으로 DefaultAnnotationHandlerMapping과 함께 사용되며,이 경우 모든 것이 정상적으로 작동합니다.
편집하다: 사실, ControllerClassNameHandlerMapping의 합법적 인 동작처럼 보입니다. aController를 / a / **가 아닌 / a / *로 매핑하므로 경로 계층 구조의 한 수준 만 허용됩니다. 그리고 완전한 유연성이 필요한 경우 DefaultAnnotationHandlerMapping을 사용하십시오.
-
==============================
2.나는 그것이 가능하다는 것을 확인할 수있다. 컨트롤러의 스 니펫을 게시 할 수 있습니까?
나는 그것이 가능하다는 것을 확인할 수있다. 컨트롤러의 스 니펫을 게시 할 수 있습니까?
-
==============================
3.아래에서 시도해 볼 수 있습니까?
아래에서 시도해 볼 수 있습니까?
@RequestMapping (value = "/ a / b / {c}", method = RequestMethod.GET)
public ModelAndView show(@PathParam("c") String c) { ModelAndView modelAndView = new ModelAndView("A"); return modelAndView; }
from https://stackoverflow.com/questions/4196577/spring-mvc-how-to-map-uri-templates-in-the-form-of-a-b-c by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 부팅시 각 DB 연결 시작시 SQL 문 실행 (0) | 2019.04.13 |
---|---|
[SPRING] 최대 절전 세션 트랜잭션을 열 수 없습니다. (0) | 2019.04.13 |
[SPRING] url에서 param을 통해 전송 된 client_id 및 client_secret (0) | 2019.04.13 |
[SPRING] @StepScope (Spring 배치 내에서 param 전달시 예외 발생) (0) | 2019.04.13 |
[SPRING] Spring 4를 사용하여 MultipartFile 목록 업로드하기 restTemplate (Java Client & RestController) (0) | 2019.04.13 |