2008-12-02 3 views
6

Недавно я начал обновлять некоторые приложения, чтобы использовать Spring Webflow 2, и я хочу использовать новую функциональность Ajax, которая поставляется с Webflow 2. Может кто-нибудь, пожалуйста, направить меня в учебник для интегрируя Tiles 2 с Spring Webflow (поскольку, по-видимому, они рекомендуют). Я нашел документацию, которая поставляется с Webflow 2 в этом отношении, абсолютно бесполезна.Интеграция Spring Webflow 2 и Apache Tiles

+0

Так же это работает? – 2009-05-16 16:36:56

ответ

2

Это то, что я сделал, чтобы заставить его работать с WebFlow 2 и плитки 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> 
3

Это точно не ссылаясь на АЯКС особенности, но это помогло мне получить APACHE плитки 2 установить для регулярных потоков:

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

намного больше детали по ссылке, но ядро бит вам нужно, это новый вид распознаватель:

<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> 
+0

Благодарим вас за ваш ответ, но, к сожалению, он действительно не более полезен, чем документация, предоставляемая SWF 2. В конце концов я получил работу, хотя мне действительно пришлось взломать и поиграть с вещами, чтобы выяснить, что произошло говорится в документации SWF 2. Если кто-то хочет помочь с SWF2, они более чем рады связаться со мной по адресу alexmarshall132 в gmail dot com. – 2009-06-01 05:58:20

+0

Мне было бы интересно узнать, что вам нужно было сделать, чтобы заставить его отображать определения фрагментов непосредственно в состоянии представления. На данный момент я прибегал к простому рендерингу jsps, у которого есть только <плитки: insertDefintion>. Не решение, которое мне особенно нравится. – 2009-06-01 13:15:03

2

Это прекрасно объясняется в документах. Поэтому, пожалуйста, перестаньте говорить, что это не так.

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

Как использовать плитки весной: 10.5 Посмотреть разрешением (ссылка + # весна-MVC-конфиг-пружинной вид разрешения)

Как использовать Ajax с плитками весной: 11.5: Обработка запроса Ajax (ссылка + # весна-JS-Аякса)

Скопируйте код из этих ссылок, и вы будете в конечном итоге с чем-то вроде этого:

Конфигурация для WebFlow использовать плитки:

<!-- 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> 

Конфигурация для плитки:

<!-- 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> 

Конфигурация для плитки + 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> 
Смежные вопросы