重用
webflow中的流程定义,如登录流程,有针对性地被结构化以便重用.他们定义封装了自己的生命周期.这些定义可以很容易的用支持spring的其他web组件配置重用.架构师应该识别出并定义通用的流程,如登录,搜索等以便今后的重用.
此外,action如果正确的设计与spring的结合,也可以被重用.他们可以同时被不同流程的action state使用.这些重用,既有应用级的又有流程级的,增强了维护性和代码可读性.
与struts结合
webflow与struts的结合部分地通过标准的spring类和org.springframework.web.struts包中的一些配置.要与webflow相关概念(action,actionflow)结合只需要注册webflow规格的struts action,并像普通的webflow action一样使用.
下面的配置代码来自struts-config.xml,描述了struts的action如何配置成流程的入口.注意webflow规格的action类(org.springframework.web.flow.struts.flowaction)和属性"flowid",它们将action与登陆流程连接起来.例子中的登录流程在spring的应用上下文(applicationcontext)中作为一个loginflow的bean管理.你还需要将这个流程注册为一个由spring管理的bean.
<!- flow actions ->
<action path="/loginflow"
type="org.springframework.web.flow.struts.flowaction"
name="actionform" scope="request"
classname="org.springframework.web.flow.struts.flowactionmapping">
<set-property property="flowid" value="loginaction" />
</action>
在这个例子中还用到了spring中的requestprocessor(org.springframework.web.struts.bindingrequestprocessor),是spring的自动绑定form和bean.这一特性避免再去写单独的actionform对象.
<controller processorclass="org.springframework.web.struts.bindingrequestprocessor"/>
同时,它还要求一个使用工具类来自动绑定web表单中的值到一个对象.
<plug-in classname="org.springframework.web.struts.bindingplugin"/>
webflow的预发布现在可以下载,其中包含一个样例应用("birthdate"),详细描述了这个整合过程.
闽公网安备 35060202000074号