技术开发 频道

Spring MVC向导控制器

将向导页面串接起来
 
    任何向导控制器的第一个页面都是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 language="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页面。
0
相关文章