`
MySSH
  • 浏览: 65149 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

Struts2配置文件详解

阅读更多
1、Struts2框架的配置文件

Struts2中程序员通常需要修改的配置文件为web.xml、struts.xml。(另外还有一个struts.properties文件,由于可以使用struts.xml代替,并且官方不推荐使用它,所以我们不再讲述)



其中web.xml文件大家都很熟悉了,它是放在WebRoot/WEB-INF下的。将FilterDispatcher作为过滤器配置到web.xml中,这样才能将struts2加载到工程里。



struts.xml文件是Struts2的核心配置文件。在开发时该文件放在src根目录下,程序打包后,该文件将会出现在WebRoot/WEB-IN/classes下。只要web.xml中配置了FilterDispatcher,那么struts.xml将在工程启动时自动被加载。

在struts.xml中包含在使用struts2时要用到的所有常量、action映射、result映射、拦截器等配置。下面我们依次对这些配置进行介绍。



2、常量配置

常量配置有3中方式可以实现,我们可以在struts.xml、struts.properties、web.xml这三个中间中配置struts2的常量,但是官方推荐的是在struts.xml中进行配置,所以另外两种方式我们不再讲述。

在struts.xml中配置struts2常量使用的是<constant name=”” value=””>标签。通常情况下我们不需要对struts2的常量进行配置,不配置的时候struts2会调用默认常量。



3、包的配置

Struts2框架的中核心组件就是Action、拦截器,Struts2框架使用包来对他们进行管理。每个包由多个Action、拦截器组和拦截器引用组成。

属性名     必选                             说明
name      是                      指定包的名称,该名称是该包被其他包引用的key值
extends   是(一般设为struts-default)  指定该包继承的其他包
 
namespace 否                      指定该包的命名空间
Abstract  否              指定该包是否是一个抽象包。抽象包中不能定义Action。




通过为包指定不同的命名空间,就可以在不同的包中,配置name值相同的Action,同一个命名空间中不能包含同名的Action。配置命名空间之后,客户端提交路径请求一个Action时,如果请求路径中带有命名空间,则struts先搜索该命名空间下的Action,如果没有找到还会继续在默认命名空间(/)下寻找该Action,如果也没有找到相应Action,则会报错。



4、Action及其处理结果的配置

<action name="lei" class="com.zuxia.lei.action.LeiAction">

<result name="success">index.jsp</result>

<result name="error">error.jsp</result>

</action>



其中的name是自己定义的action的名字,这里定义的是lei,所以请求的时候路径应该是http://localhost:8080/Struts2Demo/lei.action

<result>标签是用来定义Action处理结果用的。Action处理完用户请求后,将返回一个普通字符串,也就是一个逻辑视图名。Struts2通过配置逻辑视图和物理视图资源的映射,才能让系统把对应的视图资源呈现给浏览者。假如按照上面的配置定义后,在action类的方法中(如execute或其他方法),如果返回success,就会跳转到index.jsp,如果返回error,就会跳转到error.jsp。以上配置的是局部结果,也就是只有LeiAction这个Action才能使用配置的success和error。如果我们将<result>作为<global-results/>元素的子元素进行配置,就成了一个全局结果,全局结果的作用范围是对所有的Action都有效。请注意<global-results/>和<action>是平级的,配置在<package>标签中。

通过在<result>标签中加入type属性,还可以为Action结果设置类型。一共有三种类型,plaintext、redirect、redirect-action。Plaintext代表跳转到的页面只显示原始HTML代码部分,redirect代表通过HttpServletResponse的sendRedirect方法重定向到结果页面,redirect-action代表通过ActionMapperFactory提供的ActionMapper来重定向到结果Action。注意redirect和redirect-action两种方式都是重定向,都会丢失请求参数数据、请求属性和前一个Action的处理结果, redirect用来重定向请求html、jsp等具体的页面资源,而redirect-action用来重定向请求Action。



5、包含配置

在Struts2中可以将一个配置文件分解成多个配置文件,即一个配置文件(Struts.xml)包含其他配置文件。配置的时候在Struts.xml中的<struts>标签下配置<include>标签即可。



6、动态方法调用

在jsp中加如以下javascript。

<script type="text/javascript">

function register(){

var targetForm = document.forms[0];

targetForm.action = "Action名!方法名.action";

targetForm.submit();

}

</script>


随后可以在form中添加多个button,将button的onclick事件设置为javascript中定义的方法即可。



7、使用通配符

使用通配符实际上是另一种形式的动态方法调用。

假设UserAction这个Action类中有regist和login方法。

配置形式如下:

调用时,如果请求路径写成:http://localhost:8080/Struts2Demo/loginUser.action则会调用login方法,如果请求路径写成:http://localhost:8080/Struts2Demo/registUser.action则会调用regist方法。



8、异常处理

全局异常配置(注意<global-exception-mappings>标签是嵌套在<package>标签中)

<!-- 通配符映射:用*代替action名字的不同部分,方法中用{1}代替-->   
<action name="*User" class="com.zuxia.action.UserAction" method="{1}">
 </action>


Action异常处理

<global-exception-mappings>

<exception-mapping result="error" exception="java.lang.Exception" />

</global-exception-mappings>


将以上这句配置在<Action>标签中。



注意这两种方式配置时result="error"指向了error这个结果,所以这个Action处理结果必须配置在<action>或<global-results/>中。
1
1
分享到:
评论

相关推荐

    struts2配置文件详解

    ### Struts2配置文件详解 #### 一、引言 在Java Web开发中,Struts2框架因其灵活性和强大的功能而被广泛采用。Struts2框架的配置主要通过多个XML文件来实现,这些配置文件定义了应用程序的行为和结构。本文将详细...

    struts2 配置文件详解

    struts2 配置文件详解 ,配置struts2 action和strtus1是不一样的,需要特殊处理一下

    struts核心配置文件详解

    Struts应用的配置 多应用模块的配置 Struts配置文件 多应用模块的划分有助于应用的并行开发,提高效率

    struts2 配置文件

    ### Struts2 配置文件详解 #### 一、引言 在Struts2框架的应用开发过程中,配置文件起到了至关重要的作用。Struts2主要依赖于两种基于XML的配置文件:`web.xml` 和 `struts-config.xml`(通常命名为 `struts.xml`)...

    struts2配置文件以及代码示例

    #### 二、Struts2配置文件详解 **配置文件格式:** Struts2配置文件通常以`struts.xml`命名,采用XML格式编写。配置文件主要包含以下几部分: 1. **常量(constants)**:用于定义全局配置参数,如默认的拦截器栈、...

    Struts2配置详解

    在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用开发框架。它通过一系列的配置文件来...

    Struts2属性文件详解

    ### Struts2属性文件详解 #### struts.configuration 该属性用于指定加载Struts 2配置文件的配置文件管理器,默认值为`org.apache.struts2.config.DefaultConfiguration`,这是Struts 2默认的配置文件管理器。若...

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

    ### Struts2配置文件介绍 #### 一、Struts2的核心配置文件 在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`...

    Struts2中Struts.xml配置文件详解

    "Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...

    知识共享-struts1.2配置文件详解(雷惊风).

    - 这是Struts配置文件的根元素,其配置类为org.apache.struts.config.ModuleConfig。该元素下有8个子元素,每个都扮演着不同的角色,如数据源配置、全局异常处理、全局转发等。 #### 2. **Data-Sources元素** - `...

    struts2配置文件

    ### Struts2配置文件详解 #### 一、引言 在Java Web开发中,Struts2框架因其灵活性和强大的功能而被广泛采用。一个典型的Struts2应用的核心配置文件是`struts.xml`,该文件定义了应用的行为、组件和其他各种配置...

    struts2的struts.properties配置文件详解

    Struts2的Struts.properties配置文件详解 Struts2是一个基于MVC模式的Web应用程序框架,它提供了一个名为Struts.properties的配置文件,该文件用于配置Struts2的各种参数和设置。下面将对Struts.properties配置文件...

    struts2的配置文件

    ### Struts2配置文件详解 #### 一、概述 在Struts2框架中,配置文件是整个应用的核心组成部分之一,它决定了应用的行为、组件的配置以及处理请求的方式等。Struts2通过不同的配置文件来组织这些设置,主要包括`...

    struts.xml配置文件详解

    ### Struts.xml配置文件详解 #### 一、Struts配置文件概述 在Struts框架中,`struts.xml`配置文件扮演着极其重要的角色。它主要用于定义应用中的各种配置信息,包括但不限于包(Package)、拦截器(Interceptor)...

    Struts配置文件详解

    本文将深入探讨Struts配置文件的细节,包括`web.xml`和`struts-config.xml`。 首先,`web.xml`是每个Web应用程序的标准部署描述符,它是基于XML的文件,用于向Web容器(如Tomcat)提供关于应用如何运行的信息。`web...

Global site tag (gtag.js) - Google Analytics