我想使用Spring-Tiles整合。 Here你可以看到我的應用程序的樣子。Tiles 2並沒有找到URI的HTTP請求映射 - Spring-MVC
所以我的問題是:爲什麼Spring-MVC調度程序Servlet無法解析我的目標頁面?
我想使用Spring-Tiles整合。 Here你可以看到我的應用程序的樣子。Tiles 2並沒有找到URI的HTTP請求映射 - Spring-MVC
所以我的問題是:爲什麼Spring-MVC調度程序Servlet無法解析我的目標頁面?
問題是您在servlet映射中使用<url-pattern>/*</url-pattern>
,所以所有請求都由DispatcherServlet
處理,包括請求到*.jsp
切片。解決這個問題的最通用的方法(但是保持沒有前綴的寧靜的URL)是use a UrlRewriteFilter。
這是使用Spring的常見問題,這是由於view(jsp)通過DispatcherServlet的事實。
嘗試使用
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
修改你的web.xml,然後添加到您的urlrewrite.xml是這樣的:
<urlrewrite default-match-type="wildcard">
<rule>
<from>/</from>
<to>/app/</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/**</from>
<to>/$1</to>
</outbound-rule>
我假設你正在使用urlrewrite ,如果你沒有導入jar並在你的web.xml中添加過濾器映射,例如:
<filter>
<filter-name>urlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>urlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我認爲你錯過了一個關鍵的ViewResolver。我查了你的SpringSource提到的職位,但我沒有看到下面的ViewResolver:
org.springframework.web.servlet.view.tiles2.TilesViewResolver
嘗試添加的ViewResolver,看看是否會有幫助。我也使用Spring和Tiles。我只需要聲明那個和TilesConfigurer。
查閱這些引用:
@Arthur:所有請求的Spring MVC控制器正在throgh DispatcherServlet的。 – axtavt 2010-06-04 20:55:12