`
run_wang
  • 浏览: 168689 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

【struts】result配置各种视图转发类型

阅读更多
forward和redirect的区别
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的相应内容读取过来,然后把这些内容发给浏览器,浏览器根本不知道服务器发送的内容从哪儿来的,所以它的地址栏中还是原来的地址。
redirect 就是服务器端根据逻辑,发送一个状态码,告诉浏览器去重新去请求那个地址,所以它的地址栏中还是原来的地址
所以判断是转发还是重定向我们可以根据浏览器中的地址是否改变,若改变则为重定向,反之 为转发。

struts1配置:

<action
      attribute="loginForm"
      input="/index.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      type="com.xinyang.action.LoginAction">
      <set-property property="cancellable" value="true" />
      <forward name="succ" path="/WEB-INF/page/admin.jsp" /><!-- 浏览器内部请求转发 -->
      <forward name="error" redirect="true" path="/index.jsp" /><!--  重定向 -->
</action>



struts2配置

<action name="login" class="com.xinyang.action.LoginAction">
        <result name="success">/WEB-INF/welcome.jsp</result>
        <result name="error">/WEB-INF/error.jsp</result>
</action>
result配置类似于struts1中的forward,但是struts2中提供了多种结果类型:dispatcher(默认值)、redirect、redirectAction、painText。


【dispatcher叙述】
dispatcher(默认值):它对应struts中的 <forward name="succ" path="/WEB-INF/page/admin.jsp" />【 浏览器内部请求转发定向至某一视图】,而上面的配置  <result name="success">/WEB-INF/welcome.jsp</result>就是采用此方式进行浏览器内部请求转发定向至某一视图
【redirect叙述】
如果要实现类似于Struts1中的重定向的方式定位到某一视图,在Struts中就应该使用redirect这种方式来实现,这种结果类型它对应Struts1中<forward name="error" redirect="true" path="/index.jsp" />配置 redirect属性设置为true这样浏览器进行重定向 定向至某一Jsp
注:根据上面Struts2中的Action配置,把视图jsp放到/WEB-INF/..目录中,因为当前的jsp仅供struts的Action使用,所以我们不希望用户通过浏览器直接访问 ,反之当用户在浏览器中直接访问是没有意义的!如果浏览器采用重定向方式进行定位到某一jsp,此时视图jsp就不能放到/WEB-INF/..目录下,所以所谓浏览器重定向就是应到用户浏览器访问某一路径说 白了就是用户直接访问的路径,而此时用户是不能访问/WEB-INF/..目录中的视图,而只有浏览器服务内部请求转发时才能访问/WEB-INF/..中的jsp视图。

在strutts配置文件
<action name="redirect">
        <result type="redirect">/employee.jsp</result>
</action>

在配置视图result中 我们需要用到一个type指定接口类型是采用重定向的方式进行定位转发!

注:当浏览器进行重定向的方式 进行转定位到某一视图 ,若含有参数进行定位到某一视图
在struts1中配置如下:
<action path="/control/employee/manage" ...../>
<forward name="xxx" redirect="true">/xxx.jsp?xxx=xxx</forwad>
</action>

在struts2中

<action name="redirect">
        <result type="redirect">/xxx.jsp?xxx${xxx}</result>
</action>
注:若传递为中文:我们需对中文进行编码
public String execute(){

   try {
   this.xxx=URLEncoder.encode("朱新阳","UTF-8");
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  return  SUCCESS;
}

当在页面中显示传递过来的值时发现在浏览器中url对中文参数已经进行了中文编码,但是在页面中显示传递的参数为乱码

处理方式:在tomcat服务器接收中文参数以ISO8859-1编码方式进行存放
所以在tomcat服务器中以get()方式继续中文参数传递时候,必须先得到ISO8859-1的二进制数字然后转换为字符
因为传递的参数经过URL编码 所以还需为其解码
若不解码 代码为:new String(xxx.getBytes("ISO8859-1"),"UTF-8");
转换并解码 代码为:java.net.URLDecoder.URLDecoder.decode(new String(xxx.getBytes("ISO8859-1"),"UTF-8"),"UTF-8");
注:若不解码 好像也不错

【redirectAction叙述】
redirectAction :重定向至某一action
若重定向的action在同一包下:
<result type="redirectAction">某一action名称</result>
若:重定向的action在别的匿名空间
<result type="redirectAction">
<param name="actionName"></param>
<param name="namespace"></param>
</result>


【painText叙述】
作用:原样输出视图代码 适合应用于:技术网站浏览java或jsp源码
代码为:
<result name="xxx" type="plainText">
<param name="location">/xxx.jsp</param><!-- 指定请求文件路径-->
<param name="charSet">xxx</param><!-- 指定读取文件的编码-->
</result>
注:对struts而言
若:出现乱码,则我们需要确定文件以什么编码存储,其次对struts而言,我们要确定系统以什么编码读取它,我们必须指定它以什么编码进行存储并以什么编码进行读取
视图文件 -》右键properties--Text file encoding来确定文件是以什么编码进行存放

【全视图】
某一视图,它可以供多个action所公用 这种视图我们叫做全视图;

配置如下:
<package name="xinyang" namespace="/xinyang/employee" extends="struts-default">
     <!-- 全视图配置 -->
     <global-results>
     <result name="quanju">xxx.jsp</result>
     </global-results>
     <action name="qj" class="com.xinyang.action.LoginAction" method="add">
     </action>
     </package>
这样我们在action中 我们定义一个add方法  返回一个qj字符串就可以了
访问:http://localhost:8080/Web工程名称/xinyang/employee/qj.action  这样我们就可以访问到xxx.jsp
注:这个全视图目前是在<package name="xinyang" namespace="/xinyang/employee" extends="struts-default">这个包中定义的 所以仅能供此包下的action中所使用,若在struts使用范围内或在别的包下的anction也可以使用这个全局视图,可以通过包的继承方式来设置
<package name="base" extends="struts-default">
<global-results>
  <result name="xxx">xxx.jsp</result>
</global-results>
</package>


<package name="xxx" extends="base">
<action name="xxx" class="com.xinyang.action.LoginAction" method="add">
     </action>
</package>

<package name="xxx1" extends="base">
<action name="xxx" class="com.xinyang.action.LoginAction" method="add">
     </action>
</package>
分享到:
评论

相关推荐

    Struts2--result配置的各种视图转发类型

    这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本概念。在Struts2的配置文件(如struts.xml)中,每个Action可以有多个结果,每个结果对应一个特定的视图。Result配置...

    struts视频教程_result配置的各种视图转发类型

    esult配置的各种视图转发类型esult配置的各种视图转发类型esult配置的各种视图转发类型

    传智播客_result的各种视图转发类型及全局

    本教程主要围绕"传智播客_result的各种视图转发类型及全局"展开,这涉及到Struts2框架中的Action结果处理方式以及全局配置。 首先,Struts2中的Action结果类型是连接Action和视图的桥梁。当一个Action执行完毕后,...

    06result配置的各种视图转发类型

    Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...

    struts2 Result类型

    Struts2内置了一些基本的Result类型,如“dispatcher”(默认),它会将结果视图作为JSP、FreeMarker或其他模板引擎文件来渲染。还有“redirect”和“redirectAction”,前者用于HTTP层面的重定向,后者用于在内部...

    struts各种配置

    ### Struts 各种配置详解 #### 一、概述 Struts 是一款开源的MVC框架,用于构建可扩展的企业级Java Web应用。它通过提供一套标准的开发模式和组件来简化开发流程,并且能够很好地与其他Java技术进行整合。本文将...

    ·Struts2配置文件介绍 超级详细

    - **struts.xml**:这是Struts2框架的核心配置文件,定义了应用程序中的Action映射、结果类型以及拦截器等关键配置信息。它主要包含以下几个元素: - `package`:表示一个包,其中可以包含多个Action。 - `action`...

    struts2 result type 介绍

    在Struts2中,Result Type是控制流程的重要部分,用于定义动作执行后如何转发或重定向到特定的视图。这篇博客文章将深入探讨Struts2的Result Type,以及它在实际应用中的工作原理。 首先,我们需要了解Struts2的...

    Struts2 Result类型

    在实际应用中,开发者可以根据需求选择合适的Result类型,通过在`struts.xml`配置文件中定义result元素,指定name(通常为Action的返回码)和type(对应Result类型),以及对应的资源路径,来实现Action执行后的页面...

    struts2配置文件

    在Struts2中,配置文件主要分为两个部分:`struts-default.xml`和用户自定义的配置文件,如`struts.xml`或`struts-config.xml`。这些XML文件定义了Action、结果类型、拦截器和包等元素,从而控制应用程序的行为。 *...

    struts 2.0 详细配置

    ### Struts 2.0 详细配置解析 #### 一、Struts 2.0 简介 Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 ...

    Struts2.0的各种配置详解

    本文将深入探讨Struts2.0的各种配置,帮助开发者更好地理解和使用这个强大的框架。 首先,让我们关注Action配置中的返回值。在Struts2中,一个Action类通常包含多个方法,每个方法代表一个业务逻辑,返回值定义了...

    Struts框架配置

    总之,配置Struts框架涉及多个方面,包括导入必要的库、编写Action、配置struts.xml、处理视图以及理解拦截器机制。理解并掌握这些知识点,将有助于你构建高效、稳定且易于维护的Java Web应用。

    struts配置的文件 连接池 mysql等配置文件

    Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。在Struts2中,配置文件起着至关重要的作用,它们定义了应用的行为、请求的映射、数据验证规则以及与数据库的交互。下面将详细讨论...

    struts配置大全(1、2全)

    这个文件包含了所有动作映射、数据源、form bean、结果类型、全局转发和异常处理等配置。例如,定义一个Action Mapping如下: ```xml ``` 上述配置表示当请求以"/example"开头时,将调用`...

    struts2如何配置与自定义类型转换

    总的来说,Struts2的配置与自定义类型转换是一个关键的环节,它确保了数据从视图到模型的正确映射,提高了应用程序的灵活性和可维护性。通过理解并熟练运用这些配置和自定义机制,开发者能够更好地控制数据处理流程...

    Struts2配置详解

    此配置文件主要负责定义应用的行为、组件以及各种处理流程。下面通过一个示例来展示Struts2配置文件的基本结构: ```xml &lt;struts&gt; &lt;bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class=...

    struts2 配置文件

    在Struts2中,配置文件起着至关重要的作用,它们定义了应用的行为、控制器映射、拦截器链以及结果类型等。 1. **Struts2配置文件概述** Struts2的配置主要分为两种:XML配置和注解配置。XML配置通常在`struts.xml`...

    struts2 零配置

    在注解驱动的配置中,我们可以使用`@Result`注解来指定Action执行后应跳转的视图。 接下来,我们将深入探讨Struts2的零配置实现方式: **1. 使用注解配置Action** 在Action类中,我们可以使用`@Action`注解来指定...

Global site tag (gtag.js) - Google Analytics