首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

XingXingMVC页面跳转处置

2012-07-16 
XingXingMVC页面跳转处理点击这里下载XingXingMVC编译好的包?XingXingMVC的源代码和例子代码?今天讲forwar

XingXingMVC页面跳转处理

点击这里下载XingXingMVC编译好的包

?

XingXingMVC的源代码和例子代码

?

今天讲forward和redirect的处理.

?

在前面的介绍中,用户提交页面之后,触发后台form类的事件,由于事件的返回值我都设为void,因此xingxingmvc将原页面返回.如果要返回不同的页面,则可以使用forward方式或redirect方式。这两种方式下都要求form类的事件要有返回值,返回值为字符串。举例:

?

forward方式:

?

相类似,redirect的返回值也是一个字符串,格式为:"redirect:" +返回页面的url地址。

?

下面开始练习。我仍使用FirstDemo工程作例子,一样的,web.xml的配置跟前两天一样,没有变化。

开始创建页面,第一个页面是forward测试页面,名称为forwardtest.jsp,完整路径:go/forwardtest.jsp。代码如下

?对应的后台form类为forwardtest.java,完整路径为forms.go.forwardtest.java。代码如下:

目标页面为Target.jsp,代码如下:

?

打开forwardtest.jsp页面,在页面里输入:forward测试,如图

XingXingMVC页面跳转处置

?

点击按钮“点击后会返回新页面的内容”,结果如下图:

XingXingMVC页面跳转处置

?

从图中可以看到,forward后,浏览器上的url没有变,request里的attribute也都传过来了,例如,strName的值,这是在form类中设置的,相当于request.setAttribute("strName","forward测试");有意思的是,request里的参数也都带过来了,这就跟仅仅使用request.getRequestDispatcher(uri).forward(request,response)不同了,后者在forward时候是无法将request的参数也都传过去的,为什么这样呢,原因是xingxingmvc包装了request。具体在以后的代码分析中再讲。

需要指出的是,目标页面Target.jsp也有一个后台form类,在forward方式下,这个form类是不会被调用的。

?

下面开始讲redirect方式。

先给出redirecttest.jsp代码:

?这个页面跟forwardtest页面类似。

然后给出后台form类的代码

这里的form类,btnOK事件的返回值是字符串,格式为:"redirect:" +目标页面url地址。跟forwardtest页面一样,返回的目标页面都是Target.jsp。

Target.jsp也有后台form类,代码如下:

点击按钮。这时候redirecttest页面的后台form类 redirecttest.java会被调用,btnOK事件触发,接下来xingxingmvc调用response.sendRedirect(uri),浏览器的url地址改变,重新向服务器发请求,Target.jsp页面的后台form类Target.java被调用,onLoad事件被触发,最后,服务器返回Target.jsp,结果如下图:

?

XingXingMVC页面跳转处置

?

?

?

热点排行