没事就学习了一下web flow,但是学习过程中发现中文资料很少,比较好的就是
Spring Web Flow 2.0 入门:
http://www.ibm.com/developerworks/cn/education/java/j-spring-webflow/index.html,现在网上很多资料是Web Flow 1的,web flow 2的资料比较少,并且学习过程中发现SWF1和SWF2差异非常大,学习过程中碰到不少问题,把学习过程记录下来,java框架学习过程中,一般第一个都是helloworld,所以参照Spring Web Flow 2.0 入门写了一个helloworld,关键点:
1.启动流(配置文件webmvc-config.xml):
<bean id="viewMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!--value>/webflow=flowController </value--> <prop key="/flow-helloworld-id">flowController</prop> </props> </property> <property name="defaultHandler"> <bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController" /> </property> </bean>
配置flow-helloworld-id是注册flow(配置文件webflow-config.xml)中使用的ID,这样配置后带flow-helloworld-id字符串的请求将由flowController,来进行处理,流配置如下,同时指定流ID,如果不指定流ID,它默认使用流文件名称作为ID:
<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices"> <webflow:flow-location path="/WEB-INF/flows/helloworld.xml" id="flow-helloworld-id"/> </webflow:flow-registry>
这样启动流时,使用:
<a href="flow-helloworld-id">hello world start</a>
启动流后,使用:
<a href="${flowExecutionUrl}&_eventId=goto1">secondtpage</a>来控制流的流转:
flowExecutionUrl和_eventId都是流中的默认变量:
<view-state id="firstpage" view="firstpage"> <transition on="goto1" to="secondpage" /> </view-state>
这样点击上面链接,流对应goto1去匹配对应跳转。刚入门,原理方面的,还需要进一步学习,还是看源码实在.
扫描二维码关注公众号,回复:
580693 查看本文章
![](/qrcode.jpg)
附件没有添加需要用的包,这个直接使用web flow sample中用到的包。