快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
anguage="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <html> <head> <title>宝宝淘论坛用户注册</title> </head> <body> <form:form> 地 址:<form:input path="address" /><br> 电 话:<form:password path="telephone" /><br> <input type="submit" name="_target0" value="上一步" />①导向fullRegister视图页面 <input type="submit" name="_target2" value="下一步" />①导向favorite视图页面 </form:form> </body> </html>

当上一步按钮被按下时,名为_target0的参数被放到请求中,连同其它表单数据发送到FullUserRegisterController控制器中,控制器的getTargetPage()方法处理这个_target0参数,得到目标页面的索引是0,这样就可以将用户带到fullRegister的页面中。如果用户点击下一步按钮提交表单,_target2的参数被放到请求中,这时用户将被带来favorite页面。

Spring MVC向导控制器(3)

时间:2011-03-14 陈雄华

完成和取消向导

我们现在知道了如何让向导前进和后退,如果希望中途从向导中退出,或在最后一步提交整个向导,应该如何去做呢?FullUserRegisterController提供了processCancel()和processFinish()方法,它们分别处理取消向导和提交整个向导的工作,现在最重要的问题是如何触发这两个操作?和前进后退的触发机制类似,向导控制器通过两个特殊的提交参数进行控制:当请求中包含“_cancel”参数时,调用processCancel()方法取消向导,当请求中包含“_finish”参数时,调用processFinish()完成向导。

按照上一步和下一步相似的方式,我们只需要将提交按钮命名为“_cancel”和“_finish”就可以完成取消和完成向导的操作了。来看一下favorite页面是如何做到这点的:

<form:form> … <input type="submit" name="_target1" value="上一步" /> <input type="submit" name="_finish" value="确 定" /> ①点击该提交按钮,完成向导 <input type="submit" name="_cancel" value="取 消" />②点击该提交按钮,取消向导 </form:form>

当点击“确定”按钮时,“_finish”被添加到请求参数列表中,FullUserRegisterController执行processFinish()方法,调用业务对象对FullUser进行业务操作,并导向到welcome页面中。当点击“取消”按钮时,“_cancel”被加入到请求参数列表中,processCancel()被调用,取消向导并导向到main页面中。

分步骤校验表单数据

和表单控制器一样,你可以为向导控制器配置一个校验器,让其负责对表单对象进行数据校验,不过两者的校验流程存在区别。这是因为,如果对表单对象校验太早,由于有些表单对象属性值要在后续步骤中才能收集到,这将导致过早校验的问题。反之,如果校验时间点太晚,提供表单对象属性的页面距离当前已经跨越了多个页面,当发生错误时将无法正确导向到调整的页面,这无疑会影响交互性造成不好的用户体验。所以必须分步骤进行有针对性的校验,而非一次性校验,即控制器每次仅对当步提交的数据进行校验。

在我们高级用户注册的向导中,第一步骤要求用户填写用户名、密码、

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