Spring MVC向导控制器 - 编程入门网
的“取消”功能,它可以增强了向导的灵活性。在④处,我们指定当用户点击“取消”从向导中途退出时,转向到main.jsp页面中。
AbstractWizardFormController并没有提供“取消视图”和“成功视图”的配置属性,这不能不说是一个遗憾。所以我们在FullUserRegisterController中①和②处分别定义了用于取消页面和成功页面的逻辑视图名。 读者可能会发出这样的疑问:表单对象和向导链上的页面视图究竟在哪里定义呢?你也许已经猜测到,它们应该出现在配置文件中。我们马上看一下FullUserRegisterController的具体配置:
在前面的实例中,我们都是通过在控制器构造函数中通过调用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:填写用户联系信息页面
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |