快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
Email的信息,当用户点击下一步到relation页面时,就必须对这三个属性值进行校验,如果发生错误就应该马上返回到提供这三个属性值的fullRegister页面中,以便用户及时纠正。

在每次页面跳转时,validatePage()方法会被调用,用以校验表单对象的数据合法性。该方法缺省实现是空的,我们可以通过覆盖该方法做出自己的判断。在校验时需要结合page页面索引号进行分步骤校验。

首先我们编写一个校验器,它为每一步骤提供了相应的校验方法:

代码清单 3FullUserValidator package com.baobaotao.domain; … public class FullUserValidator implements Validator { … public boolean supports(Class clazz) { return clazz.equals(FullUser.class); } public void validate(Object command, Errors errors) {①完全校验 … } public void validateStep1(Object command,Errors errors){ ②第一步的校验 … } public void validateStep2(Object command,Errors errors){ ③第二步的校验 … } }

FullUserValidator为第一,二步向导分别提供了校验,而validate()用于向导最后提交时的校验。在FullUserRegisterController在validatePage()方法中根据page属性所标识的步骤执行相关的校验:

代码清单 4FullUserRegisterController# validatePage() protected void validatePage(Object command, Errors errors, int page, boolean finish) { FullUserValidator validator = (FullUserValidator)getValidator(); if (page == 0) { ①第一步提交的校验 validator.validateStep1(command, errors); }else if (page == 1) {②第二步提交的校验 validator.validateStep2(command, errors); }else if (finish) { ③向导最后提交的校验 validator.validate(command, errors); } }

当向导页面提交时,page表示提交的页面索引,我们可以据此实施特定步骤的校验。当向导最后提交时finish属性为true,这时我们就进行整体表单对象校验。

最后我们要做的是在配置文件中将FullUserValidator装配到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"/> <property name="validator"> ①注入校验器 <bean class="com.baobaotao.domain.FullUserValidator" /> </property> </bean>

在①处注入校验器,这样validatePage()方法就可以通过getValidator()获取校验器并实施分步校验了。

小结

在Struts、WebWork等MVC框架中开发具有向导功能的模块往往是比较复杂的,因为向导的各项处理动作和前后的衔接都必须由开发者负责,从框架中得不到任何的帮助。而在Spring MVC中开发具有向导功能的模块是非常容易的,因为Spring MVC已经通过AbstractWizardFormController“预编制”好了向导的流程,开发者仅需要按照特定的规则实现特定的方法,使用特定的URL请求参数就可以开发出一个功能强大的向导模块了。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号