Tiles 2并没有找到带HTTP的HTTP请求的映射 - Spring-MVC

时间:2010-06-04 20:10:37

标签: spring spring-mvc mapping tiles tiles2

我想使用Spring-Tiles集成。 Here您可以看到我的应用的样子。

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

3 个答案:

答案 0 :(得分:4)

问题是您在servlet映射中使用<url-pattern>/*</url-pattern>,因此所有请求都由DispatcherServlet处理,包括对*.jsp个tile的请求。解决问题的最通用的方法(但保留没有前缀的宁静网址)是use a UrlRewriteFilter

答案 1 :(得分:2)

我认为你错过了一个关键的ViewResolver。我检查了你在SpringSource中提到的帖子,但我没有看到以下的ViewResolver:

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

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

查看以下参考资料:

答案 2 :(得分: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>