Reputation: 45
I've a spring webflow project with the login-flow.xml like this
<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
<view-state id="start" view="login.xhtml/>
<end-state id="end" />
</flow>
The problem that, how could I replace the view in the view-state by a view name defined in the tiles.xml? something like
<view-state id="start" view="login"/>
tiles.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="base.definition"
template="/WEB-INF/layout/layoutgreen/baseLayout.jsp">
<put-attribute name="title" value="" />
<put-attribute name="topHeader" value="/WEB-INF/layout/layoutgreen/topHeader.xhtml"/>
<put-attribute name="header" value="/WEB-INF/layout/layoutgreen/header.xhtml" />
<put-attribute name="menu" value="/WEB-INF/layout/layoutgreen/menu.xhtml" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/layout/layoutgreen/footer.xhtml" />
</definition>
<definition name="login" extends="base.definition">
<put-attribute name="title" value="Login" />
<put-attribute name="header" value="/WEB-INF/layout/layoutgreen/lheader.jsp" />
<put-attribute name="body" value="/WEB-INF/flows/login/login.xhtml" />
</definition>
</tiles-definitions>
Thanks
Upvotes: 0
Views: 699
Reputation: 3192
Apache tiles works with spring webflow exactly as you described
However you need to enable webflow to work with apache tiles to make it working
Please look at my configuration below to understand how to proceed
<bean id="tilesViewResolver"
class="org.springframework.web.servlet.view.tiles3.TilesViewResolver">
</bean>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/layouts/default.xml</value>
</list>
</property>
</bean>
<webflow-config:flow-registry id="flowRegistry"
base-path="/WEB-INF/flows"
flow-builder-services="flowBuilderServices">
<webflow-config:flow-location
id="contact" path="contact-flow.xml">
</webflow-config:flow-location>
</webflow-config:flow-registry>
<webflow-config:flow-executor id="flowExecutor"
flow-registry="flowRegistry">
</webflow-config:flow-executor>
<bean id="flowHandlerAdapter"
class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
<property name="flowExecutor" ref="flowExecutor"></property>
</bean>
<bean id="flowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry"></property>
<property name="order" value="0"></property>
</bean>
<webflow-config:flow-builder-services id="flowBuilderServices"
view-factory-creator="mvcViewFactoryCreator" validator="validator"/>
<bean id="mvcViewFactoryCreator"
class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
<property name="viewResolvers" ref="tilesViewResolver"></property>
</bean>
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
</bean>
Upvotes: 0