Spring MVC向导控制器 - 编程入门网
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页面是如何做到这点的:
当点击“确定”按钮时,“_finish”被添加到请求参数列表中,FullUserRegisterController执行processFinish()方法,调用业务对象对FullUser进行业务操作,并导向到welcome页面中。当点击“取消”按钮时,“_cancel”被加入到请求参数列表中,processCancel()被调用,取消向导并导向到main页面中。 分步骤校验表单数据 和表单控制器一样,你可以为向导控制器配置一个校验器,让其负责对表单对象进行数据校验,不过两者的校验流程存在区别。这是因为,如果对表单对象校验太早,由于有些表单对象属性值要在后续步骤中才能收集到,这将导致过早校验的问题。反之,如果校验时间点太晚,提供表单对象属性的页面距离当前已经跨越了多个页面,当发生错误时将无法正确导向到调整的页面,这无疑会影响交互性造成不好的用户体验。所以必须分步骤进行有针对性的校验,而非一次性校验,即控制器每次仅对当步提交的数据进行校验。 在我们高级用户注册的向导中,第一步骤要求用户填写用户名、密码、 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |