在jsp/servlet中,结果集一般是指请求转发和重定向这两种。

Struts2作为框架,提供了基于这两种的很多其它的结果集!


在struts-default.xml中定义了一些默认的结果集:
         <result-types>
            <result-type name= "chain" class="com.opensymphony.xwork2.ActionChainResult" />
            <result-type name= "dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
            <result-type name= "freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult" />
            <result-type name= "httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult" />
            <result-type name= "redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult" />
            <result-type name= "redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult" />
            <result-type name= "stream" class="org.apache.struts2.dispatcher.StreamResult" />
            <result-type name= "velocity" class="org.apache.struts2.dispatcher.VelocityResult" />
            <result-type name= "xslt" class="org.apache.struts2.views.xslt.XSLTResult" />
            <result-type name= "plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
        </result-types>

怎样配置结果集呢?
在struts的配置中,使用result标签来表示结果集:
< result type = "redirect" name = "redirect"> / resulttype/resulttype.jsp </result >


type:表示结果集的类型
name:与Action中方法的返回值相互相应!

常见的type有三种:dispatcher,redirect,redirectAction

以下具体介绍一下这三种结果集:
1.创建一个struts-resulttype.xml文件:
在struts.xml文件里。使用inclue将上述文件引入:
< include file = "struts-resulttype.xml" ></include >

struts-resulttype.xml:
<?xml version= "1.0" encoding ="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache
Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
     <package name="resulttype" namespace="/" extends="struts-default" >
          
           <!--
              全局结果集:当某个方法返回为name属性相应的值时。就调用全局结果集进行处理。

              能够用来进行通用错误页面的处理。
           -->
           <global-results>
               <result name="error" >errot/error.jsp</ result>
           </global-results>
          
           <!-- 測试请求转发 
-->
           <action name= "dispatcherAction" method="testDispatcher" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >
               <!--
              <result type="" name=""></result> :
                   result标签代表一种结果集。在struts-default.xml中定义了一写结果集
                   type
                        dispatcher  转发  默认值
                        redirect    重定向
                        redirectAction  重定向到一个action
                  name
                      success 默认值
                  method="testDispatcher"
               -->
               <result type= "redirect" name="redirect" >/ resulttype/resulttype.jsp</result >
           </action>
          
          
           <!-- 測试重定向
               浏览器中的 url会发生变化:
               http://localhost/itheima03_struts2/resulttype/resulttype.jsp
           -->
           <action name= "redirectAction" method="testRedirect" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >
               <result type= "redirect" name="redirect" >/ resulttype/resulttype.jsp</result >
           </action>
          
           <!--
              測试重定向到一个action
              浏览器的地址栏会变成:
               http://localhost/itheima03_struts2/dispatcherAction!testDispatcher.action
           -->
           <action name= "redirectActionAction" method="testRedirectAction" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >
               <result type= "redirectAction" name="redirectAction" >dispatcherAction!testDispatcher.action </result>
           </action>
          
           <!-- 測试全局结果集的处理
              当自定义的name属性的值和全局结果集name属性值一直时,自定义的优先!
              1.当自己的name='error'时,使用自定义的结果集。
              2.当自己的name!='error'时。假设訪问的方法返回的是"error",那么调用全局结果集进行处理!

              
          -->
           <action name= "globalResultAction_*" method ="{1}" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >
               <result name="error" >resulttype/resulttype.jsp</ result>
           </action>
          
     </package >
</struts>

2.Action的处理:
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class ResultTypeAction extends ActionSupport{
     
     /**
      * 測试请求转发结果集:type为dispatcher
      * <result type="dispatcher" name="dispatcher">/resulttype/resulttype.jsp </result>
      */
     public String
testDispatcher(){
          ServletActionContext. getRequest().setAttribute("aa", "aadda");
//        return "error";//測试全局结果集
           return "dispatcher" ;
     }
     
     /**
      * 測试重定向
      */
     public String
testRedirect(){
          ServletActionContext. getRequest().setAttribute("aa", "aaa");
           return "redirect" ;
     }
     
     /**
      * 測试重定向到一个action
      * <result type="redirectAction" name="redirectAction">dispatcherAction!testDispatcher.action</result>
      */
     public String
testRedirectAction(){
          ServletActionContext. getRequest().setAttribute("aa", "aaa");
           return "redirectAction" ;
     }
     
     /**
      * 測试全局结果集
      * 返回值要和全局结果集的name属性值要相应!
      *        <global-results>
                   <result name="error">errot/error.jsp </result>
             </global-results>
      *
      * @return
      */
     public String
globle(){
           return "error" ;
     }
}


【Struts2二】结果集(result-type)的更多相关文章

  1. struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)

    dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp) Xml代码 : <result name="success">/main.jsp</re ...

  2. Struts2 语法--result type

    result type: dispatcher,redirect:只能跳转到jsp,html之类的页面,dispatcher属于服务器跳转, redirect属于客户端跳转 chain: 等同于for ...

  3. 基于struts2注解@action的@Result跳转问题——跳转到另一个action

    初学ssh 基于注解的方式简单灵活,但是做一个例子的时候,添加用户AddUser 完成后 想页面跳转到 ListUser 这个action, 然后action 成功后 会跳转到list.jsp 显示 ...

  4. struts2.xml 中result type属性说明

    chain           用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息.           com.opensymphony.xwork2.Acti ...

  5. struts2 Result Type四个常用转跳类型

    Result的四个常用转跳类型分别为 Dispatcher 用来转向页面,是Struts的默认形式 Redirect   重定向到一个URL Chain  用来处理Action链 RedirectAc ...

  6. Struts2 中result type属性说明

    Struts2 中result type属性说明 首先看一下在struts-default.xml中对于result-type的定义: <result-types><result-t ...

  7. struts2 action result type类型

    struts2 action result type类型 1.chain:用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息. com.opensymphony. ...

  8. struts2 result type类型

    result标签中type的类型 类型 说明 chain 用于Action链式处理 dispatcher 用于整合JSP,是<result>元素默认的类型 freemarket 用来整合F ...

  9. struts2 中 result type="stream"

    Stream result type是Struts2中比较有用的一个feature.特别是在动态生成图片和文档下载的情况下 1:图片验证码: Action类,action主要要提供一个获取InputS ...

随机推荐

  1. HTML5常见的面试题,基础知识点

                                                                                    HTML5常见的面试题 一.HTML 常 ...

  2. 移动端rem自适应设置

    对于移动端自适应各种终端的解决方案较多,本篇只是选择其中一种rem适配,我个人做移动端最喜欢的方案. rem就是以html根元素的字体大小为参考,比如html:font-size:20px;1rem= ...

  3. win7创建webdav

    环境 win7+iis 构筑条件 存放路径:c:\Data 访问方式:192.168.x.xxx/webdav 用户名:yx 密码:yx 搭建顺序 1.添加iis.启动->控制面板->程序 ...

  4. cf #257(Div.2) A. Jzzhu and Children

    A. Jzzhu and Children time limit per test 1 second memory limit per test 256 megabytes input standar ...

  5. [Hibernate]Access to DialectResolutionInfo cannot be null when &#39;hibernate.dialect&#39; not set

    使用Hibernate官方文档上的下面代码进行測试时报出这个异常. org.hibernate.HibernateException: Access to DialectResolutionInfo ...

  6. JavaScript-4.4函数递归之阶乘举例---ShinePans

    <html> <head> <meta http-equiv="content-type" content="text/html;chars ...

  7. bzoj1293: [SCOI2009]生日礼物(stl堆)

    1293: [SCOI2009]生日礼物 题目:传送门 题解: 据说这道题乱搞随便就水过了 本蒟蒻想到了一个用堆的水法(还专门学了学queue): 如果把每一种颜色的下一个位置都记录一下的话,一开始就 ...

  8. 137.CPP自带异常

    #include <iostream> #include <exception> using namespace std; //继承自带的异常 class sizeerror ...

  9. SQL SERVER 将一个数据库中的表和数据复制到另一个数据库中

    第一种情况:将A数据库.dbo.A表的数据追加到B数据库.dbo.B表中 (条件:此时B数据库中已创建好了B表) insert into B数据库.dbo.B表 select * from A数据库. ...

  10. java日期类型与字符串类型的相互转换

    package cn.zwq.convert; import java.text.ParseException; import java.text.SimpleDateFormat; import j ...