`

Struts2之Action配置的各项默认值、result配置的各种试图转发类型及为应用指定多个str

阅读更多
摘要:   1、Action配置的各项默认值  (1)、如果没有为action指定class,默认是ActionSupport。  (2)、如果没有为action指定method,默认执行action中的execute()方法。  (3)、如果没有为action指定result,默认值 ...



1、Action配置的各项默认值
  (1)、如果没有为action指定class,默认是ActionSupport。
  (2)、如果没有为action指定method,默认执行action中的execute()方法。
  (3)、如果没有为action指定result,默认值为success。
  2、result配置的各种试图转发类型
  <result type="">...</result>
  其中type的常用类型有:
  dispatcher(默认值) ->转发
  redirect ->重定向
  redirectAction ->重定向的action在别的命名空间下
  如:<result type="redirectAction">
  <param name="actionName">helloworld</param>
  <param name="nameSpace">/test</param>
  </result>
  plainText ->显示原始文件内容
  如:<result type="">
  <param name="location">/xxx.jsp</param>
  <!--指定读取文件的编码-->
  <param name="charSet">UTF-8</param>
  </result>
  注意:在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性名
  如:<result name="success" type="redirect">/index.jsp?username=${username}</result>
  3、为应用指定多个struts配置文件
  在大部分应用里,随着应用规模的增加,系统中Action数量也大量增加,导致struts.xml配置文件变得非常臃肿。为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。下面的struts.xml通过<include>元素指定多个配置文件:
  <?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>
  <include file="struts-user.xml"/>
  <include file="struts-order.xml"/>
  </struts>
  通过这种方式,我们就可以将Struts 2的Action按模块配置在多个配置文件中。
  以下为模拟案例
  目录结构
  HelloWordAction action类
  package com.ljq.action;
  import java.net.URLEncoder;
  public class HelloWordAction {
  private String msg;
  private String username;
  public String msg(){
  msg = "我的第一个Struts2应用";
  return "msg";
  }
  public String list() throws Exception{
  //对中文进行编码
  msg = "我的第一个Struts2应用";
  this.username=URLEncoder.encode("林计钦","UTF-8");
  return "list";
  }
  public String getMsg() {
  return msg;
  }
  public void setMsg(String msg) {
  this.msg = msg;
  }
  public String getUsername() {
  return username;
  }
  public void setUsername(String username) {
  this.username = username;
  }
  }
  message.jsp页面
  <%@ 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>message</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>
  <b>${msg }</b>
  </body>
  </html>
  index.jsp页面
  <%@ page language="java" import="java.util.*,java.net.*" 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>HelloWord</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>
  <%--
  <result name="list" type="redirect">不会显示${msg }的值
  <result name="list" type="dispatcher">会显示${msg }的值
  --%>
  ${msg }<br/>
  <%--获取url的请求参数 --%>
  <%--${param.username }会出现乱码 --%>
  ${param.username }<br/>
  <%=URLDecoder.decode(new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8")%>
  </body>
  </html>
  helloworld_struts.xml子配置文件
  <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "struts-2.0.dtd">
  <struts>
  <!-- 全局result:有很多时候一个result可供很多action使用,这时可以使用global-results标签来定义全局的result -->
  <package name="base" extends="struts-default">
  <global-results>
  <result name="msg">/message.jsp</result>
  </global-results>
  </package>
  <package name="helloWord" namespace="/helloWord" extends="base" >
  <!-- 访问路径: http://localhost:8083/struts2_1/helloWord/manage.do -->
  <action name="manage" class="com.ljq.action.HelloWordAction" method="msg"></action>
  <!-- 访问路径: http://localhost:8083/struts2_1/helloWord/listHelloWord.do
  http://localhost:8083/struts2_1/helloWord/msgHelloWord.do
  -->
  <action name="*HelloWord" class="com.ljq.action.HelloWordAction" method="{1}">
  <!-- 注意:在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性名 -->
  <result name="list" type="redirect">/index.jsp?username=${username}</result>
  </action>
  </package>
  </struts>
  struts.xml配置文件
  <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "struts-2.0.dtd">
  <struts>
  <!-- 该属性指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
  如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
  <constant name="struts.action.extension" value="do,php" />
  <!--解决乱码 -->
  <constant name="struts.i18n.encoding" value="UTF-8" />
  <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
  <constant name="struts.serve.static.browserCache" value="false" />
  <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
  <constant name="struts.configuration.xml.reload" value="true" />
  <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
  <constant name="struts.devMode" value="true" />
  <!-- 默认的视图主题 -->
  <constant name="struts.ui.theme" value="simple" />
  <!--<constant name="struts.objectFactory" value="spring" />-->
  <!-- 动态方法调用和使用通配符定义 -->
  <!--该属性设置Struts2是否支持动态方法调用,该属性的默认值为true。如果需要关闭动态方法调用,则可设置该为false -->
  <!--<constant name="struts.enable.DynamicMethodInvocation" value="false" />-->
  <!--上传文件的大小设置(这里的大小指的是总大小)-->
  <!--<constant name="struts.multipart.maxSize" value="10701096" />-->
  <!-- 引入 -->
  <include file="helloworld_struts.xml" />
  </struts>
  <!--注意:Struts2读取到Struts2.xml的内容后,以JavaBean形式存放在内存中。-->
  <!--以后Struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取Struts2.xml文件-->
  运行结果
  1、访问路径: http://localhost:8083/struts2_1/helloWord/manage.do
分享到:
评论

相关推荐

    struts2 result配置详解

    在 Struts2 框架中,Redirect 和 Redirect-action 是两个不同的 Result 配置类型。Redirect 配置用于重定向到一个新的 URL,而 Redirect-action 配置用于重定向到一个 Action。 Redirect-action 配置可以省略后缀名...

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

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

    传智播客struts2.1视频教程_源代码_Action配置的各项默认值

    本教程重点关注的是Action配置及其默认值,这对于理解和使用Struts2框架至关重要。 在Struts2中,Action类是业务逻辑的执行者,它处理用户请求并返回结果到视图。Action配置主要通过`struts.xml`或`struts....

    struts2 result转向到action

    **Result** 在 Struts2 配置文件(通常是 struts.xml)中被定义,用来指定 Action 处理完业务逻辑后如何响应客户端请求。例如,可以配置 Result 来重定向到另一个 JSP 页面或者另一个 Action。 当开发者希望在 ...

    struts2 Result类型

    Struts2 Result类型是Struts2框架中一个关键的概念,它是动作执行完成后跳转到下一个页面或处理逻辑的核心机制。Result类型定义了如何处理动作执行的结果,使得开发者能够灵活地控制应用程序的流程。 首先,我们...

    struts2核心配置文件

    `struts.xml` 文件是Struts2的核心配置文件之一,主要负责管理和定义应用程序中的Action映射以及相关的Result定义。具体来说,该文件包括以下几个关键部分: 1. **Action 映射**: - 指定每个Action的名称、执行的...

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

    在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`struts-default.xml`等。 - **web.xml**:它是Web应用的部署描述...

    struts2一个action处理多个请求 struts2实例

    在Struts2的配置文件(通常为struts.xml或struts.properties)中,我们定义Action的映射规则,包括请求路径、方法调用以及结果视图等。默认情况下,一个Action类对应一个请求URL,但通过特定配置,可以让一个Action...

    Struts 2使用注解配置Action

    在传统的Struts 2应用中,我们通常会通过XML配置文件(struts.xml)来定义Action,包括Action类、结果页面、拦截器等信息。然而,随着Java注解的广泛应用,Struts 2也引入了注解配置的方式来简化开发过程,避免了XML...

    Struts2中struts_xml的Action配置详解

    在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...

    struts2的action的几种result type说明

    Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。在Struts2中,Action是业务逻辑的核心组件,而Result是控制流程的关键部分,它定义了Action执行后如何展示结果。Result Type...

    5Action配置的各项默认值

    Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...

    struts2配置文件之result

    ### Struts2配置文件中的Result详解 在Struts2框架中,`result`是一个非常重要的概念,它主要用于定义Action执行完成后页面的跳转规则。本文将深入探讨Struts2配置文件中`result`的配置方法及其不同的类型,并通过...

    Struts2的Action多个方法配置和验证

    在Struts2的配置文件(通常为struts.xml或struts-default.xml)中,我们需要为每个方法定义一个action节点,指定方法名、结果类型和其他相关属性。例如: ```xml &lt;action name="method1" class=...

    struts2中result类型之redirectAction

    在Struts2中,Result是Action执行后控制流程的重要组件,它定义了Action执行完毕后如何转发或重定向到一个新的页面。"redirectAction"是Struts2中的一种Result类型,专门用于实现HTTP级别的重定向。 重定向是一种...

    struts2 result type 介绍

    在Struts2中,Result Type是由`struts-default.xml`配置文件中的`&lt;package&gt;`元素的`defaultResultType`属性指定的,默认情况下,这个值通常是“dispatcher”,意味着Action完成后会使用Dispatcher Result来渲染JSP...

    struts2参数配置

    在深入了解Struts2框架时,我们不可避免地会接触到各种参数配置。这些配置对于整个框架的运行至关重要。本文将围绕Struts2中的关键配置进行深入探讨,旨在帮助开发者更好地理解和掌握Struts2的核心功能。 #### 二、...

    struts2中result类型之redirect

    在Struts2框架中,每个动作(Action)都可能有多个结果(Result),这些结果是由配置文件(如struts.xml)中的`&lt;result&gt;`标签定义的。当一个Action执行完成后,根据其返回值,Struts2会寻找匹配的结果类型并执行相应...

    Struts2_Action学习笔记、通配符{1},{2}

    ### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...

    一个简单的struts2的手动配置

    总之,手动配置Struts2涉及多个层面,包括库的添加、核心配置文件的编写、web.xml的过滤器配置、Action的编写以及插件的使用。理解并熟练掌握这些配置,将有助于我们更好地利用Struts2框架构建高效、可扩展的Java ...

Global site tag (gtag.js) - Google Analytics