[SPRING] 스프링 MVC 컨트롤러에서 동적 url / prj / noticeOpen / 2를 매핑하는 방법
SPRING스프링 MVC 컨트롤러에서 동적 url / prj / noticeOpen / 2를 매핑하는 방법
안녕하세요. 다음 URL에 어려움을 겪고 있습니다.
<a href="/noticeOpen/2">dynamicLink</a>
다음 컨트롤러 방법으로 매핑 :
@RequestMapping(value="/noticeOpen/{quesId}")
public ModelAndView noticeOpen(@ModelAttribute("NoticeForm") NoticeForm noticeForm,
ModelMap model,
@PathVariable("quesId") Integer quesId){
System.out.println(quesId);
return new ModelAndView("/noticeOpen","noticeForm",noticeForm);
}
앵커 dynamicLink를 클릭하면 문제가 시작되고 컨트롤을 내 컨트롤러로 전송하지 않고 대신 브라우저의 주소 표시 줄에 다음과 같이 표시합니다.
http://127.0.0.1:8080/prj/noticeOpen/2/WEB-INF/pages/noticeOpen.jsp
또한 applicationContext.xml에서 다음과 같은 매핑이 있습니다.
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
이것은 컨트롤러의 @RequestMapping 및 @PathParam 메서드 서명 ({anchor에서 questionId를 제거하십시오})에서 {quesId}를 제거하면 정상적으로 작동합니다.
http://127.0.0.1:8080/prj/noticeOpen
그러나 그것은 역동적으로 들리지 않으며 나의 요구 사항을 충족시킵니다.
을 포함한다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>Spring Web MVC Application</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
최신 정보
/ noticeOpen / {quesId}에 대한 새 컨트롤러를 만들고 이제 컨트롤을 얻지 만 다음 방법의 동작을 이해할 수는 없습니다. NoticeController를 아래에서 살펴본 다음 그 결과를 얻으십시오.
@Controller
public class NoticeController {
@RequestMapping(value="/noticeOpen/{quesId}")
public ModelAndView noticeOpen(@ModelAttribute("NoticeForm") NoticeForm noticeForm,ModelMap model,@PathVariable("quesId") Integer quesId){
return new ModelAndView("noticeOpen","noticeForm",noticeForm);
}
@RequestMapping(value="/noticeOpen")
public ModelAndView noticeOpen(@ModelAttribute("NoticeForm") NoticeForm noticeForm,ModelMap model){
return new ModelAndView("noticeOpen","noticeForm",noticeForm);
}
@RequestMapping (value = "/ noticeOpen") noticeOpen.jsp를 수정하도록 리디렉션합니다. @RequestMapping (value = "/ noticeOpen / {quesId}") 다음 오류 페이지로 리디렉션됩니다.
HTTP Status 404 - /prj/noticeOpen/WEB-INF/pages/noticeOpen.jsp
type Status report
message /prj/noticeOpen/WEB-INF/pages/noticeOpen.jsp
description The requested resource is not available.
Apache Tomcat/6.0.36
해결법
-
==============================
1.다음과 같이 applicationContext.xml에서 접두어 값을 변경하십시오.
다음과 같이 applicationContext.xml에서 접두어 값을 변경하십시오.
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean>
WEB-INF 전에 슬래시. 작동 할 것입니다.
from https://stackoverflow.com/questions/17697899/how-to-map-dynamic-url-prj-noticeopen-2-in-spring-mvc-controller by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 프레임 워크는 정확히 무엇입니까? [닫은] (0) | 2018.12.16 |
---|---|
[SPRING] java : comp / env / do는 무엇입니까? (0) | 2018.12.16 |
[SPRING] spring-data-cassandra를 사용한 사용자 정의 유형 (0) | 2018.12.16 |
[SPRING] HttpRequest 및 HttpResponse를 파일에 기록하는 방법? (0) | 2018.12.16 |
[SPRING] 스프링 보안 세션을 무효화할 수 있습니까? (0) | 2018.12.15 |