我想使用Spring-Tiles集成。 Here您可以看到我的应用的样子。
所以我的问题是:为什么Spring-MVC调度程序Servlet无法解析我的目标页面???
答案 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>