`
java小牛
  • 浏览: 7208 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2 常用配置

阅读更多
Struts.xml
包含配置
在默认的情况下, Struts2 将自动加载放在 WEB-INF/classes 路径下的 struts.xml 文件。大部分应用里,随着应用的规模的增加,系统的 Action 数量大量增加,导致了 struts.xml 配置文件变得非常臃肿。
       为了避免这种情况,可以将一个 struts.xml 文件分解成多个配置文件,然后在 struts.xml 文件中包含其他配置文件。比如说:在 struts.xml 文件中使用以下配置方式
<include file=”struts-mod1.xml” />
通过这种方式提供了一种模块化的方式来管理 struts.xml 文件。
另外,在 core 的根目录下有一个 struts-default.xml 文件,注意,这个文件是自动加载的,不需要在我们的 struts.xml 文件中用 include 导入。  
Bean 的配置
一般这个元素不需要我们进行配置,只是需要重新定义 struts2 的核心组件的时候才需要使用到这个元素。
Struts2 框架是一个可以高度扩展的框架,框架的大部分核心组件,都是通过 IOC 容器来进行管理的。因此,允许开发者可以很方便的提供自己的组件实现类,并将组件类部署到 struts2 OK 了。
这个标记很不常用,如果需要可以查看帮助。
不过这里举个例子:
<bean type=”com.opensymphony.xwork2.ObjectFactory” name=”caFactory” class=”cc.dynasoft.MyObject” />
以上代码的作用是使用一个自己定义的 ObjectFactory 来替换了 struts2 内置的 object
常量配置
Struts 有一个属性文件, struts.properties ,实际上这个配置文件是指定 struts2 的属性。而常量配置就是指定 struts2 属性的一种方式。例子:
<constant name=”struts.custom.i18n.resources” value=”message” />
以上用于指定国际化资源文件的前缀名是 message ,当然也可以在 struts.properties 中配置,如下:
struts.custom.i18n.resources=message
也可以在 web.xml 中进行配置:
作为 FilterDispatcher init-param
<param-name> struts.custom.i18n.resources</param-name>
<param-value>message</param-value>
以下是加载 struts2 常量的搜索顺序:
1、  struts-default.xml
2、  struts-plugin.xml
3、  struts.xml
4、  struts.properties
5、  web.xml
包配置
Struts2 使用 package 来管理 Action 和拦截器等。配置该包时,必须指定一个 name 属性,用于指定包名,可以指定一个可选的 extends 属性,是另一个包的名字,子包可以继承父包的拦截器,拦截器栈、 action 等配置。除此之外, struts 还提供了一个抽象包,抽象包的含义是该包不能有 action 的定义。设置 abstract=”true” 说明这是一个抽象包。
以下是一个例子:
<package name=”mod1” extends=”struts-default” /> 其中 struts-default struts-default.xml 提供的包。  
另一个比较重要的概念就是命名空间:
考虑在一个 web 应用中需要同名的 action struits2 以命名空间的方式来管理 Action ,同一个命名空间不能有同名的 Action ,不同的命名空间可以有同名的 Action 。如果不指定命名空间,则默认的命名空间是 ”” ,指定了命名空间之后, Action URL 应该是命名空间 +Action 名。
比如说:
<action name=”register” extends=”struts-default” namespace=”/user” > …… </action>
则对应的 Action 应该是 /user/register.action
如果 namespace=”/” ,说明这是一个根命名空间。
 
如果指定了命名空间,但是在该命名空间中找不到该 Action struts2 将会在默认的命名空间中继续查找,如果还找不到,则出现系统错误。
比如说:
请求 /order/save.action ,系统首先在命名空间 /order 中查找,如果找到,使用该 action 进行处理,否则,系统将到默认的命名空间中查找,如果两个命名空间都找不到,出现系统错误。
 
拦截器配置
       拦截器实际上思想就是 AOP ,我们可以使用拦截器跟踪日志、跟踪系统性能瓶颈等。
       拦截器的配置无非就是声明拦截器、引用拦截器以及声明拦截器栈。可以认为拦截器栈是由多个拦截器组成的一个大的拦截器。
       定义拦截器和拦截器栈都在 <interceptors /> 这个标记内
       以下是一个例子:
       <interceptors>
              <interceptor name=”log” class=”cc.dynasoft.LogInterceptor” />
<interceptor name=”authority” class=”cc.dynasoft. Authority Interceptor” />
<interceptor name=”timer” class=”cc.dynasoft.TimerInterceptor” />
<interceptor-stack name=”default”>
       <interceptor-ref name=” authority” />
<interceptor-ref name=” timer” />
</interceptor>
 
引用拦截器是在 action 中引用的:例子:
<action name=”login” class=”cc.dynasoft.LoginAction”>
       ……
       <interceptor-ref name=”log” />
</action>
 
配置 Action
实际上配置 Action 很简单,就使用 action 标签就 OK 了, action 标签有两个重要属性: name class name 是必须指定的,他既是 action 的名字,也是该 action 需要处理的 URL 的前半部分。如果 class 没有指定,默认是 ActionSupport 。而 ActionSupport 默认处理就是返回一个 SUCCESS 字符串。
struts 的全局配置文件中有一个属性: struts.enable.SlashesInActionNames 如果设置为 true ,允许 struts2 框架中使用斜线。
Action 中直接访问 servlet API 有以下两种方法:
1、  如果需要访问 ServletContext Action 类需要实现接口 ServletContextAware
如果需要访问 HttpServletRequest Action 类需要实现接口 ServletRequestAware
如果需要访问 HttpServletResponse Action 类需要实现接口 ServletResponseAware
 
以下是例子代码,主要用于访问 Reponse 对象:
public class LoginAction implements Action,ServletResponseAware
{
        private HttpServletResponse response;
 
        // 实现 ServletResponseAware 接口必须实现的方法
       
        public String execute() throw Exception
        {
               Cookie c = new Cookie(“user”,getUsername());
               c.setMaxAge(60*60);// 最大生存时间
               response.addCookie(c);
               return SUCCESS;
        }
}
 
2、  struts2 提供了一个 ServletActionContext ,这个类包含了访问 request response 等静态方法。
 
注意:即使我们在 struts2 Action 中获得了 HttpServletResponse 对象,也不要尝试直接在 Action 中生成对客户端的输出。比如:下面代码是没有实际意义的,即
response.getWriter().println(“hello world!”);
分享到:
评论

相关推荐

    struts2常用的7个jar包,struts2常用的7个jar包

    下面将详细介绍这些常用的JAR包及其在Struts2框架中的作用。 1. **struts2-core.jar**:这是Struts2框架的基础,包含了框架的核心类和接口,如Action、Result、Interceptor等。这个JAR文件提供了请求处理、动作映射...

    Struts 2常用jar包

    总结来说,"Struts 2常用jar包"是构建基于Struts 2的Web应用所必需的类库,它们协同工作,为开发者提供了强大的MVC框架支持,包括请求处理、数据绑定、视图渲染以及丰富的客户端交互能力。正确理解和使用这些库,...

    struts2常用jar包

    1. struts2-core-2.3.4.1.jar:这是Struts2的核心库,包含了框架的基础功能,如Action类、Result类型、拦截器、配置管理等。它是所有Struts2应用的基础,没有它,其他组件无法正常工作。 2. xwork-core-2.3.4.1.jar...

    Struts2常用的jar包

    在这个主题中,我们将详细探讨Struts2框架中常用的jar包及其作用。 1. **struts2-core-2.3.34.jar**:这是Struts2的核心库,包含了框架的主要组件,如Action类、拦截器、结果类型、配置管理等。它实现了请求的处理...

    Struts2常用常量.doc

    #### 二、Struts2常用配置常量 1. **`struts.i18n.encoding`** - **作用**:此常量用于指定Web应用的默认编码集,等同于调用`HttpServletRequest`的`setCharacterEncoding`方法。设置此项可以确保所有的输入数据...

    struts2常用的类包

    本压缩包包含了13个Struts2框架中常用的类包,对于初学者和学生来说,掌握这些类包将对理解Struts2的工作原理及其核心功能大有裨益。 1. **struts2-core**: 这是Struts2的核心库,包含了框架的基础组件。如Action、...

    struts2常用标签详解(实用版)

    在Java Web开发领域中,Struts2框架因其丰富的功能及灵活的配置而备受开发者们的青睐。为了更好地掌握Struts2框架并提升开发效率,本文将详细介绍Struts2中常用的标签及其用法,无论您是初学者还是高级用户,都能...

    struts2.0常用的5个jar包

    在使用Struts2时,需要在web.xml中配置Struts2的前端控制器Filter,以处理所有的HTTP请求。同时,Action类通常会继承自Struts2提供的ActionSupport类,以便利用其默认的行为和错误处理机制。 总的来说,Struts2.0的...

    struts2常用包.zip

    `struts2常用包.zip`包含了Struts2框架运行所必需的一些核心库和其他支持库。下面将详细介绍这些文件及其在Struts2中的作用: 1. `struts2-core-2.3.1.2.jar`:这是Struts2的核心库,包含了框架的主要组件和功能。...

    Struts2常用jar包.rar

    这个“Struts2常用jar包.rar”文件包含了运行Struts2应用所需的核心库和依赖,方便开发者直接放入项目的lib目录中使用。下面将详细介绍Struts2框架的关键组件和它们在实际开发中的作用。 1. **核心组件**: - `...

    5个常用struts2 jar 包

    在实际项目中,开发者还需要熟悉Struts2的配置文件(struts.xml),Action的定义,以及如何使用 strut标签库来构建视图。同时,理解OGNL表达式的用法,以及如何使用FreeMarker模板来动态生成页面,也是必不可少的...

    JSP上手struts2常用包2.3版

    在"JSP上手struts2常用包2.3版"中,包含了一系列用于快速开发Struts2应用的基础组件。 1. **Struts2核心库**:这是Struts2的核心组件,包括了Action、Result、Interceptor等关键概念的实现。例如`struts2-core.jar`...

    STRUTS2常用JAr

    在"STRUTS2常用JAr"这个压缩包中,我们通常会看到以下关键的JAR文件: 1. **struts2-core.jar**:这是Struts2框架的核心库,包含了Action、Interceptor、Result以及其他核心组件的实现。它提供了控制器层的主要功能...

    struts2的六个常用jar

    以下是对"struts2的六个常用jar"的详细解释: 1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的主要组件和功能。它提供了Action、Result、Interceptor等关键接口和实现,以及请求处理和视图渲染的基础...

    struts2常用包

    下面我们将深入探讨Struts2的常用包及其在开发中的作用。 1. **核心包(core)**: - `struts2-core`: 这是Struts2的基础包,包含核心的控制器、拦截器、结果类型等。它定义了`Action`接口和`ActionSupport`基类,...

    struts2常量设置详解 struts2常量设置详解

    ### Struts2常量设置详解 #### 一、概述 在Struts2框架中,配置文件`struts.properties`用于定义一系列重要的系统级配置项,这些配置项对框架的行为模式和功能实现起着至关重要的作用。本文将详细介绍该文件中几个...

    struts2.0常用标签文档

    10. **标签的CSS和JavaScript控制**:Struts2的标签支持CSS类的设置,如`cssClass`属性,以及JavaScript事件处理,如`onchange`、`onclick`等。 以上只是Struts2.0常用标签的一小部分,实际使用中还有更多功能强大...

    struts2最常用的几个类库

    在使用Struts2时,了解并掌握其常用的类库至关重要。以下是一些核心的Struts2类库及其作用的详细解释: 1. **Struts2 Core Library**:这是Struts2的核心库,包含了框架的基本组件,如Action、Result、Interceptor...

Global site tag (gtag.js) - Google Analytics