Question

J'ai récemment commencé à mettre à niveau certaines applications pour utiliser Spring Webflow 2 et je souhaite utiliser la nouvelle fonctionnalité Ajax fournie avec Webflow 2. Quelqu'un peut-il m'indiquer un didacticiel sur l'intégration de Tiles 2 à Spring Webflow ( puisque c'est apparemment ce qu'ils recommandent). J'ai trouvé que la documentation fournie avec Webflow 2 à cet égard était absolument inutile.

Était-ce utile?

La solution

C’est ce que j’ai fait pour le faire fonctionner avec Webflow 2 et les tuiles 2.0

.
<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles-defs/templates.xml</value>
        </list>
    </property>
</bean>

<bean id="urlMapping"
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/flow/**/*.html">
                flowController
            </prop>
            <prop key="/**/*.html">viewController</prop>
        </props>
    </property>
    <property name="order" value="1" />
</bean>

<bean id="tilesViewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>

<bean id="flowController"
    class="org.springframework.webflow.mvc.servlet.FlowController">
    <property name="flowExecutor" ref="flowExecutor" />
</bean>

<webflow:flow-executor id="flowExecutor"
    flow-registry="flowRegistry" />

<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices"
    base-path="/WEB-INF/flow/user">
    <webflow:flow-location path="/manage-users.xml" />
</webflow:flow-registry>


<webflow:flow-builder-services id="flowBuilderServices"
    view-factory-creator="viewFactoryCreator" />

<bean id="viewFactoryCreator"
    class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
    <property name="viewResolvers" ref="tilesViewResolver" />
</bean>

Autres conseils

Cela ne se réfère pas exactement aux fonctionnalités ajax, mais cela m'a aidé à configurer les tuiles Apache 2 pour les flux réguliers:

http: / /jee-bpel-soa.blogspot.com/2008/12/spring-web-flows-2-and-tiles.html

Beaucoup plus de détails sont sur le lien, mais le noyau dont vous avez besoin est un nouveau résolveur de vues:

<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>
<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions" value="/WEB-INF/flows/main/main-tiles.xml" />
</bean>

C’est parfaitement expliqué dans la documentation. Alors, s'il vous plaît, arrêtez de dire que ce n'est pas le cas.

http: / /static.springsource.org/spring-webflow/docs/2.0.x/reference/htmlsingle/spring-webflow-reference.html

Comment utiliser les carreaux au printemps: 10.5 Résolution d'image (link + # spring-mvc-config-spring-view-resolution)

Comment utiliser Ajax avec des tuiles au printemps: 11.5: Traitement de la demande Ajax (lien + # spring-js-ajax)

Copiez le code à partir de ces liens et vous obtiendrez quelque chose comme ceci:

Configuration pour que Webflow utilise les mosaïques:

    <!-- Plugs in a custom creator for Web Flow views -->
<webflow:flow-builder-services id="flowBuilderServices" view-factory-creator="mvcViewFactoryCreator" />

<!-- Configures Web Flow to use Tiles to create views for rendering; Tiles allows for applying consistent layouts to your views -->
<bean id="mvcViewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
    <property name="viewResolvers" ref="tilesViewResolver" />
</bean>

Configuration pour les mosaïques:

    <!-- Configures the Tiles layout system -->
<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/views/layouts/page.xml</value>
            <value>/WEB-INF/views/layouts/table.xml</value>
            <value>/WEB-INF/views/globalViews.xml</value>
            <value>/WEB-INF/views/userViews.xml</value>
        </list>
    </property>
</bean>

Configuration pour les mosaïques + Ajax:

    <!--
  - This bean configures the UrlBasedViewResolver, which resolves logical view names 
  - by delegating to the Tiles layout system. A view name to resolve is treated as
  - the name of a tiles definition.
  -->
<bean id="tilesViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.webflow.mvc.view.FlowAjaxTilesView" />
</bean>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top