Tomcat 7.0에서 잘 작동하는 Spring 3.0.6을 기반으로하는 webapp가 있습니다.mvc : view-controller는 Spring Tiles2에서 PageNotFound를 발생시킵니다.
<bean id="tilesViewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles-def.xml</value>
</list>
</property>
</bean>
내가 컨트롤러가 @RequestMapping("/home")
로 주석하고에 정의 된 "home"
보기 :
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
발송자는 일반적인 방법으로 뷰 리졸버를 정의
web.xml
tiles-def.xml
. 브라우저에서
/myapp/home.html
을 가리키면 타일 페이지가 열립니다.
나는 404 로그에 /myapp/home.html
결과에 브라우저를 내 디스패처 XML 파일에 <mvc:resources mapping="/resources/**" location="/resources/" />
또는 <mvc:view-controller path="/" view-name="home.html"/>
을 추가하는 경우는 말한다 : 내가 잘못 뭐하는 거지
21:34:22,128 WARN PageNotFound:947 – No mapping found for HTTP request with URI [/myapp/home.html] in DispatcherServlet with name 'dispatcher'
?
덕분에 많은
DispatcherServlet.doDispatch에 중단 점을 설정하고 진행 상황을 볼 수 있습니다. :) –
안녕하세요, Boris, 디버깅하려했지만 Dispatcher 서블릿의 내부 작업을 이해하기가 꽤 복잡했습니다. 문제는 내 MVC 컨트롤러의 메서드가'void' 였고 문자열을 반환하지 않아 프레임 워크가 경로를 사용하여 뷰를 자동으로 해결하려고 시도했기 때문입니다. Tiles2 뷰 이름을 명시 적으로 리턴하는 것으로 변경하고 모든 것이 다시 작동했습니다. 나는 교훈을 배웠고, 봄은 아무것도 추측하지 못하게했다. ;-) – Ciaccia
좋아. 결과를 답으로 게시하고 질문을 닫으십시오.)). –