我想使用 Spring-Tiles 集成。在这里您可以看到我的应用程序的外观。
所以我的问题是:为什么 Spring-MVC 调度程序 Servlet 不能解析我的目标页面???
问题是您<url-pattern>/*</url-pattern>
在 servlet 映射中使用,因此所有请求都由 处理DispatcherServlet
,包括对*.jsp
切片的请求。解决它的最通用方法(但要保持不带前缀的宁静 url)是使用 UrlRewriteFilter。
我认为您缺少关键的 ViewResolver。我检查了您在 SpringSource 中提到的帖子,但没有看到以下 ViewResolver:
org.springframework.web.servlet.view.tiles2.TilesViewResolver
尝试添加该 ViewResolver 并查看是否有帮助。我也使用 Spring 和 Tiles。我只需要声明它和 TilesConfigurer。
查看这些参考资料:
这是使用 Spring 的一个常见问题,这是因为视图 (jsp) 通过 DispatcherServlet。
尝试使用修改您的 web.xml
<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>
然后添加到您的 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>