3

我想使用 Spring-Tiles 集成。在这里您可以看到我的应用程序的外观。

所以我的问题是:为什么 Spring-MVC 调度程序 Servlet 不能解析我的目标页面???

4

3 回答 3

4

问题是您<url-pattern>/*</url-pattern>在 servlet 映射中使用,因此所有请求都由 处理DispatcherServlet,包括对*.jsp切片的请求。解决它的最通用方法(但要保持不带前缀的宁静 url)是使用 UrlRewriteFilter

于 2010-06-04T20:25:37.990 回答
2

我认为您缺少关键的 ViewResolver。我检查了您在 SpringSource 中提到的帖子,但没有看到以下 ViewResolver:

org.springframework.web.servlet.view.tiles2.TilesViewResolver

尝试添加该 ViewResolver 并查看是否有帮助。我也使用 Spring 和 Tiles。我只需要声明它和 TilesConfigurer。

查看这些参考资料:

于 2010-12-25T19:07:43.007 回答
1

这是使用 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> 
于 2010-12-11T03:04:04.690 回答