我有一个运行Spring Webflow,Tiles和JSP的Web应用程序。
目前所有页面都在扩展我的“defaultLayout”定义(包含横幅,菜单结构,页脚等)。
在图块定义文件中:
<definition name="defaultLayout" template="/WEB-INF/tiles/defaultLayout.jsp"/>
<definition name="_**.view.jsp" extends="defaultLayout">
<put-attribute name="content" value="{1}.view.jsp"/>
</definition>
新要求是拥有“嵌入式”视图(没有页脚/菜单/等)。我创建了一个嵌入式视图定义:
<definition name="embeddedLayout" template="/WEB-INF/tiles/embeddedLayout.jsp"/>
<definition name="_**.embedded.view.jsp" extends="embeddedLayout">
<put-attribute name="content" value="{1}.view.jsp"/>
</definition>
我有JSP文件,用于指定页面的主要内容(全部名称为:pageName.view.jsp)。
现在我需要的是让tile渲染pageName.embedded.view.jsp(将使用embeddedLayout)而不是pageName.view.jsp基于某个要求的某种方式(还没有弄清楚那可能是一个请求传入的参数或该效果的东西)。
我对tile的内部工作方式不太熟悉我可以覆盖什么类来更改pageName.view.jsp而不是pageName.embedded.view.jsp?
以下是我的相关Spring配置:
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles/tiles-defs.xml</value>
</list>
</property>
</bean>
<bean id="webflowViewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
<property name="viewResolvers">
<bean class="org.springframework.js.ajax.AjaxUrlBasedViewResolver">
<property name="viewClass" value="org.springframework.webflow.mvc.view.FlowAjaxTilesView"/>
<property name="prefix" value="_"/>
</bean>
</property>
</bean>
任何帮助将不胜感激。
Tiles版本:2.2.1 春季版:3.0.3 Webflow版本:2.1.1
答案 0 :(得分:0)