[SPRING] 스프링 MVC 3의 안정된 경로 매개 변수
SPRING스프링 MVC 3의 안정된 경로 매개 변수
* -servlet.xml 파일의 mvc : view-controller 요소 나 컨트롤러 메서드에서 URI 템플릿을 설정 한 다음 JSP에서 해당 경로 매개 변수를 사용하거나 가져올 수 있습니까?
컨트롤러 메서드에서 @PathVariable을 사용하면 해당 컨트롤러 메서드의 path 매개 변수에 대한 액세스 권한이 부여됩니다. 하지만 JSP에서 path 매개 변수에 액세스하려면 어떻게해야합니까?
예를 들어, 다음과 같이 할 수 있습니까?
* -servlet.xml 파일 :
<beans...>
<mvc:view-controller path="/home" view-name="home"/>
<mvc:view-controller path="/home/{error}" view-name="home"/>
</beans>
JSP 파일 :
<c:if test="${not empty param['error']}">
<span class="error">You have an error...</span>
</c:if>
해결법
-
==============================
1.jsp에서 액세스하려면 컨트롤러에서 속성으로 반환하십시오.
jsp에서 액세스하려면 컨트롤러에서 속성으로 반환하십시오.
@RequestMapping("/home/{error}") public void handleError(@PathVariable String error, ModelMap model) { //your regular stuff model.addAttribute("error", error); }
-
<c:if test="${not empty error}"> <span class="error">You have an error...</span> </c:if>
-
==============================
2.해결 된 경로 변수의 Map은 HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE에 의해 지정된 이름을 가진 속성으로 표시됩니다. 그래서 해결책은
해결 된 경로 변수의 Map은 HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE에 의해 지정된 이름을 가진 속성으로 표시됩니다. 그래서 해결책은
<c:if test="${not empty requestScope['org.springframework.web.servlet.HandlerMapping.uriTemplateVariables']['error']}">
하지만이 방법으로 접근하는 것은 좋은 생각이 아닙니다. Affe의 솔루션은 더 깨끗합니다.
from https://stackoverflow.com/questions/2951012/restful-path-parameters-in-spring-mvc-3 by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 바람둥이 중지시 스프링 서비스로 java.io.NotSerializableException 받기 (0) | 2019.04.21 |
---|---|
[SPRING] 스프링 보안 설정 @ 유일 예외가 아니다. (0) | 2019.04.21 |
[SPRING] AOP를 사용하여 File, FileReader, FileWriter, FileInputStream 및 FileOutputStream의 생성자를 차단할 수 있습니까? (0) | 2019.04.21 |
[SPRING] 커맨드 라인에서 -javaagent를 사용하지 않고 Spring과 Tomcat으로 로딩 타임을 설정하는 법 (0) | 2019.04.21 |
[SPRING] 스프링 부트와 로그백을 사용하여 SQL을 콘솔에 로깅하는 것을 피할 수 없다. (0) | 2019.04.21 |