Struts2中Result类型介绍

1.在Struts2中,Result类型有12种,分别为dispatcher,redirect,chain,redirectAction,freemarker,httpheader,stream,velocity,xslt,plainText,titles,postback。下面对这12种Result类型分别进行介绍,其中最常用的有dispatcher,redirect,chain,redirectAction,如果不指定result的type属性,默认为dispatcher分发跳转方式。

2.其中在struts.xml配置文件中,里面的包继承的包为struts_default,而包所继承的这个struts_default为一个xml文件,放在struts2的核心代码库里面,即下图的红色箭头指向处:

打开下图的红色箭头的struts-default.xml文件:

打开后我们可以看到如下图所示:

其中我们可以看到result的type类型有11种,相应的名字和对应的类,所以我们在学习的时候可以看相应的class类,即看源代码学习,下面将对这11种result类型进行介绍。

3.上面的要我们看我们查看源代码学习,所以我们应该学习如何才能看到我们的源代码,没导入jar包和路径的话,都是字节码,不能看到我们熟悉的Java代码,其中我们导入的路径位于我们下载的struts2所需的文档,jar包等等,所以下面介绍如何导入相应的路径来看我们的源代码:

(1).首先,我们选择struts2-core-2.3.20.jar包,然后鼠标右键选择Properties,即属性这个选项,出现下图,点击下图的红色箭头指向处的按钮:

(2).其中我在网上下载的struts-2.3.20-all.zip的压缩包,我们要导入源代码的话,我的是这个路径:E:\struts-2.3.20\struts-2.3.20\src\core\src\main\java,大家看后面几个文件夹便可以找到了,如下图所示:

这样我们就可以查看相应的类文件代码了。

对于result的type属性中有一个是放在xwork-core-2.3.20.jar包下的,所以也需要导入源代码,我的路径为:E:\struts-2.3.20\struts-2.3.20\src\xwork-core\src\main\java,然后像上面一步一样打开属性,然后就可以了,如下图所示:

这样便可以查看底层的代码了。

3.前面说了那么多,还没说到重点,即result的type类型,上面也是为了学习result的type而做的部分工作,接下来便开始介绍result的type了:

(1).dispatcher:运用服务器跳转到jsp页面(视图),不可以跳转到Action,只可以跳转到视图,在struts.xml配置文件中,如果没有为result设置type属性的话,默认就是通过这种方式跳转的。

(2).redirect:客户端跳转(重定向),其中url(地址栏的地址)会发生变化,不可以跳转到Action,只可以跳转到视图。

(3).chain:用来处理Action链,跳转到Action,可以动用到Action,在访问Action时,Action前面不要加 "/" 。

(4).redirectAction:客户端跳转到Action,其中url(地址栏的地址)会发生变化。

(5).freemarker:处理FreeMarker模板。

(6).httpheader:用来控制特殊的Http行为,发送一个Http头。

(7).stream:意思是流,向浏览器发送InputSream对象,通常用来处理文件下载。

(8).velocity:处理Velocity模板。

(9).xslt:处理XML/XLST模板。

(10).plainText:返回页面的源码。

(11).titles:把页面分成几块,,每个页面可以动态的指定。

(12).postback:回传,即页面在首次加载后向服务器提交数据,然后服务器把处理好的数据传递到客户端并显示出来。

4.下面新建一个struts2项目,项目名为ResultType,这个项目只对常用的几个result类型进行介绍:

(1).首先,打开index.jsp页面,修改编码方式为utf-8,具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!–<link rel="stylesheet" type="text/css" href="styles.css">–> </head><body><ol><li><a href="r/r1">dispatcher</a></li><li><a href="r/r2">redirect</a></li><li><a href="r/r3">chain</a></li><li><a href="r/r4">redirectAction</a></li><li><a href="r/r5">plainText</a></li></ol> </body></html>

(2).接着新建两个jsp页面,分别为r1.jsp和r2.jsp,其中内容自定:

不要惧怕黑暗,人间没有永恒的夜晚;不要担心严寒,

Struts2中Result类型介绍

相关文章:

你感兴趣的文章:

标签云: