Hlavní menu

Nástroje

WebKiv / IntegraceSpringWebFlowDoOpenCms

View (print) - Edit page | Recent changes - Page history

Updated 30 June 2009, 09:17 by JaroslavPavuk

Integrace Spring Web Flow do OpenCms

Instalace knihoven

  1. Funkční Spring MVC (minimálně verze 2.5.4!) podle návodu výše.
  2. Stažení Spring Web Flow (min. verze 2.0.x).
  3. Stažení OGNL 2.6.9 nebo jboss-el.
  4. Přidání stažených JAR knihoven do OPENCMS_HOME\WEB-INF\lib.

Konfigurace

Upravíme soubor TOMCAT_HOME\webapps\opencms\WEB-INF\springapp-servlet.xml

Atributy kořenového elementu beans rožšíríme o schema pro Web Flow. Dostaneme tedy:

<beans xmlns="http://www.springframework.org/schema/beans"  
   xmlns:context="http://www.springframework.org/schema/context"  
   xmlns:flow="http://www.springframework.org/schema/webflow-config"  
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
   xsi:schemaLocation="http://www.springframework.org/schema/beans  
      http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
      http://www.springframework.org/schema/context  
      http://www.springframework.org/schema/context/spring-context-2.5.xsd  
      http://www.springframework.org/schema/webflow-config  
      http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd">

Mapováni controlleru flow na springappflow.html. Soubor s definicí flow bude očekáván ve tvaru springappflow.xml, viz definice níže.

<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     <property name="mappings">
      <props>
        <prop key="springappflow.html">flowController</prop>
      </props>
    </property>
</bean>

Dále je samotná konfigurace Web Flow (stále jsme ve springapp-servlet.xml):

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

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

Nastavení cesty k definicím flow. Povinně musíme zadat cestu k springappflow.xml, které jsme umístili do /WEB-INF/flows/. Je možné zde nastavit cesty k dalším definicím.

<flow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices">  
     <flow:flow-location path="/WEB-INF/flows/springappflow.xml"/>
</flow:flow-registry>

Zaregistrování viewResolveru pro používaní view z MVC:

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

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

ViewResolver může vypadat například takto:

<bean id="viewResolver"	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
		<property name="prefix" value="/opencms/system/modules/cz.zcu.kiv.opencms.springapp/elements/views/"></property>
		<property name="suffix" value=".jsp"></property>
</bean>

Tímto máme hotovou konfiguraci souboru springapp-servlet.xml.

Definice Flow

Podle výše uvedené konfigurace předpokládáme definici flow v souboru springappflow.xml. Tvorba definic flow a práce s nimi je popsána v referenční příručce v kapitolách 2-5.

Spring IDE

  • plugin do Eclipse
  • podpora Web Flow 2.0
  • kontrola syntaxe, našeptávač
  • grafický editor

Instalace

  • najdeme na SpringIDE
  • v Eclipse WTP lze stahovat přímo v 'Help -> Software Updates -> Available Software -> Spring IDE Update Site', kde vybereme
    • /Core/Spring IDE Core
    • /Extensions/Spring IDE Web Flow Extension
  • při problémech s instalací hledejte např. v bugzille springu

Založení Spring projektu

Není vhodné přidávat soubory s definicemi flow do hlavního projektu, který synchronizujeme s OpenCms serverem (jsou vyžadovány DTD pro XML). Vytvoříme tedy samostatný Spring projekt, kterému do Build Path přidáme náš hlavní projekt. Pro tvorbu nové definice máme k dispozici průvodce (jako pro vytváření projektu). Projekt obsahuje složku Spring Elements, kam můžeme vložit naše definice flow (právé tlačitko myši -> Properties). Grafický editor otevřeme položkou v kontextovém menu pravým tlačítkem myši na definici flow.

Odkazy


Zpět na FrameworkyProWebKiv