Spring3中的UrlBasedViewResolver和Apache Tiles2
尝试打开URL时出现以下异常: 我的mvc-config.xml如下所示:Spring3中的UrlBasedViewResolver和Apache Tiles2,spring,spring-mvc,tiles,tiles2,Spring,Spring Mvc,Tiles,Tiles2,尝试打开URL时出现以下异常: 我的mvc-config.xml如下所示: <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions" value="/WEB-INF/tiles/tiles.xml" />
</bean>
@RequestMapping(method = RequestMethod.GET, value = "agregar")
public void agregar() { ... }
我的JSP视图文件位于/WEB-INF/views下,如下所示:
/WEB-INF/views
-- /clientes
---- agregar.jsp
-- welcome.jsp
-- clientes.jsp
谢谢 在my tiles.xml中添加了以下内容,效果良好:
<definition name="*/*" extends="mainTemplate">
<put-attribute name="content" value="/WEB-INF/views/{1}/{2}.jsp" />
</definition>
有更好(更灵活)的解决方案吗?
如果您将遇到StackOverFlow,您应该这样做(type=“template”):
我还没有测试过它,但正如文档中所说:
- 一个星号(*)表示单个占位符李>
- 两个星号(**)表示“在指定目录下的每个目录中”李>
<definition name="**" extends="mainTemplate">
<put-attribute name="content" value="/WEB-INF/views/{1}.jsp" />
</definition>
<definition name="*/*" extends="mainTemplate">
<put-attribute name="content" value="/WEB-INF/views/{1}/{2}.jsp" />
</definition>
<definition name="/**" extends="page">
<put-attribute name="content" value="/WEB-INF/jsp/{1}.jsp"/>
</definition>
<put-attribute name="some_name" value="some_page.jsp" type="template"/>
<definition name="**" extends="mainTemplate">
<put-attribute name="content" value="/WEB-INF/views/{1}.jsp" />
</definition>