快速业务通道

Spring MVC向导控制器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
的“取消”功能,它可以增强了向导的灵活性。在④处,我们指定当用户点击“取消”从向导中途退出时,转向到main.jsp页面中。

AbstractWizardFormController并没有提供“取消视图”和“成功视图”的配置属性,这不能不说是一个遗憾。所以我们在FullUserRegisterController中①和②处分别定义了用于取消页面和成功页面的逻辑视图名。

读者可能会发出这样的疑问:表单对象和向导链上的页面视图究竟在哪里定义呢?你也许已经猜测到,它们应该出现在配置文件中。我们马上看一下FullUserRegisterController的具体配置:

<bean name="/fullRegisterUser.html" class="com.baobaotao.web.user.FullUserRegisterController"> <property name="bbtForum" ref="bbtForum" /> ① 业务对象 <property name="commandClass" value="com.baobaotao.domain.FullUser"/> ②表单对象类 <property name="pages" value="fullRegister,relation,favorite"/> ③向导链页面逻辑名,用逗号隔开 <property name="cancelView" value="main"/> ④取消后转向的视图 <property name="successView" value="welcome"/> ⑤向导处理成功后转向的视图 </bean>

在前面的实例中,我们都是通过在控制器构造函数中通过调用setCommandClass()方法指定表单对象(命令对象),这里我们通过配置进行指定,如②所示。

③处通过pages属性定义了构成向导链的页面视图,pages属性是一个String[],你不但可以通过<list><value></value></list>的方式进行配置,也可以通过逗号分隔的字符串的方式进行配置,后者显然要更简洁一些。“fullRegister,relation,favorite”传达了两个信息:

1)向导链由三个视图组成,分别是fullRegister、relation和favorite;

2)向导链的视图顺序是fullRegister->relation->favorite。

在④和⑤处分别定义了取消和提交表单转向的视图,这样向导控制器就知道哪些页面构成了表单,当进行取消和提交表单操作时需要转向到哪些页面。至此,形如图 1所描述的整体向导流程就搭建完成了。

虽然我们已经知道了整个向导的页面组成,但是组成向导链的页面需要做哪些配合工作,以便让向导正确串接起来呢?

将向导页面串接起来

任何向导控制器的第一个页面都是pages属性指定的第一个视图(可以通过覆盖方法改变)。在高级用户注册向导中,第一个显示的页面是即fullRegister视图(通过视图解析器解析,你可以简单地将其看为fullRegister.jsp)。

当AbstractWizardFormController接收到请求时,它根据咨询getTargetPage()方法判断要转向到哪个目标视图。getTargetPage()方法返回一个整数值,它代表向导页面的索引值,以0为基数,也就是说0代表fullRegister,1代表relation,以此类推。

getTargetPage()方法的缺省实现是根据请求中的一个特定参数来确定的,这个参数以“_target”开头,以数字结尾。getTargetPage()方法去掉“_target”前缀得到剩下的数字,以它作为目标页面的索引值。例如,如果请求中的一个参数名为“_target1”,那么用户将被带到索引为1的relation页面。

了解getTargetPage()的工作原理有助于我们在HTML页面中构造下一步和上一步的按钮。例如对于relation视图页面(对应的页面索引为1),要在这个页面创建下一步和上一步按钮,你要做的就是创建提交按钮,并以_targetX进行命名,如下所示:

代码清单 2 relation.jsp:填写用户联系信息页面

<%@ page l

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号