`

Struts2的体系结构

阅读更多

 

     Struts2的体系结构

 

定义常量

常量可以在struts.xmlstruts.properties中配置,建议在struts.xml中配置,两种配置方式如下:

struts.xml

<struts>

    <constant name="struts.action.extension" value="do"/>

</struts>

 

struts.properties

struts.action.extension=do

 

通常,struts2按如下搜索顺序加载struts2常量:

struts-default.xml

struts-plugin.xml

struts.xml

struts.properties

web.xml

如果在多个文件中配置了同一个常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量值.

 

常用的常量

<!-- 指定默认编码集,作用于HttpServletRequestsetCharacterEncoding方法 freemarker velocity的输出 -->

    <constant name="struts.i18n.encoding" value="UTF-8"/>

    <!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。

    如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->

    <constant name="struts.action.extension" value="do"/>

    <!-- 设置浏览器是否缓存静态内容,默认值为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" />

    <!– spring集成时,指定由spring负责action对象的创建 -->

    <constant name="struts.objectFactory" value="spring" />

 <!–该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false -->

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

 

Struts2Action(业务逻辑控制器)

相对与Struts1而言,struts2采用了低侵入式的设计,struts不要求Action类继承任何的Struts2基类,或者实现任何Struts2接口,在这种设计下,Struts2Action类是一个普通的POJO,通常只需要包含一个无参的execute方法,从而有很好的代码复用性。

但为了让用户开发Action类更加规范,Struts2提供了一个Action接口,这个接口定义了Struts2Action处理规范。下边是一个标准Action接口的代码。

 

Public interface  Action{

       Public static final String ERROR=”error”;

       Public static final String INPUT=”input”;

       Public static final String SUCCESS=”success”;

       Public static final String NONE=”none”;

       Public static final String LOGIN=”login”;

       //定义处理用户请求的execute方法

       Public String execute() throw Exception;

}

另外Struts2还提供了一个实现类:ActionSupportAction的实现类),该类中提供了许多默认的方法,这些默认的方法包括国际化信息的方法数据校验的方法,默认的处理用户请求的方法。继承该类能大大的简化Action的开发。

 

三、使用struts2封装表单元素的值:

1.       属性驱动:直接在Action中添加属性和对应的gettersetter方法

2.       模型驱动:

a)         必须实行ModelDriven接口,并且重新getModel方法

b)        初始化属性 private Userinfo user = new Userinfo();

c)        在页面上表单元素的名称为实体类的属性名称

四、如何获取servlet API中的对象(request,session,application)

       1 使用ActionContext获取对象(Map)

       2.   使用ServletActionContext对象获取

       3.    使用DI注入的方式(IoC方式)

a)实行相应的接口(xxxAware),request对象的接口(ServletRequestAware),response(ServletResponseAware),session(SessionAware)

                     b)Action中添加相应的属性和setter方法(setter注入)

 

分享到:
评论

相关推荐

    Struts2体系结构图例详解

    在Struts2的体系结构中,主要有以下几个关键组件: 1. **Filter Dispatcher**:这是Struts2的核心组件,作为Servlet Filter运行在Web应用中。当请求到达时,Filter Dispatcher会拦截请求并根据配置进行处理。它是...

    struts 体系结构

    阅读提供的文档如"Struts体系结构.doc"和"struts概念和体系结构.pdf"将进一步深入理解Struts框架的内部工作原理和最佳实践。 总的来说,Struts框架通过其模块化的结构和丰富的组件,为Java Web应用提供了强大且灵活...

    struts体系结构与工作原理

    Struts 体系结构与工作原理 Struts 体系结构是目前基于 Java 的 Web 系统设计中广泛使用的 MVC 架构。Struts 是 Apache 基金会 Jakarta 项目组的一个 Open Source 项目,它采用模型 - 视图 - 控制器(Model-View-...

    Struts2 简介

    与Struts1相比,Struts2的体系结构更加先进。它不再依赖单一的ActionServlet,而是采用FilterDispatcher作为核心过滤器,结合ActionMapper和ActionProxy来处理请求。ActionInvocation负责调用Action并管理拦截器链,...

    Struts2入门教程

    #### 三、Struts2体系结构 Struts2采用模块化设计,主要由以下几个组件构成: 1. **过滤器**:作为入口点,负责接收HTTP请求并将控制权传递给Action容器。 2. **Action容器**:管理Action实例,根据配置执行相应的...

    struts2学习笔记

    **Struts2体系结构** Struts2的核心控制器是FilterDispatcher,它负责根据请求调用相应的Action。Action是业务逻辑的控制器,它通过拦截器链(Interceptor Stack)处理请求,这些拦截器可以实现如验证、工作流、文件...

    Struts2入门宝典

    Struts2的体系结构主要由四大部分组成:控制器(Controller)、模型(Model)、视图(View)以及拦截器(Interceptor)。其中,控制器负责接收用户请求并调度到相应的Action;模型包含了业务逻辑和数据;视图用于...

    Struts的体系结构

    二、Struts 概念和体系结构 Struts 框架由一系列相互协作的类、Servlets 和 JSP 标签库构成。它符合 JSP Model2 规范,是对 MVC 设计模式的一种实现。Struts 的控制器是核心组件,负责接收用户请求并调度相应的业务...

    Struts的体系结构与工作原理

    2. **视图(View)**:视图主要由 JSP 页面构建,Struts 提供了一套自定义标签库(TagLib),如 Bean Tags、HTML Tags、Logic Tags、Nested Tags 和 Template Tags,方便开发者创建用户界面。这些标签可以帮助实现...

    Struts2技术手册-Struts2精华教程-电子书

    .....Struts2体系结构 .....Struts2工程创建 .....struts-default.xml .....struts.xml .....struts.properties .....Action_编写与配置 .....Action_访问容器与校验 .....Action_ResultType .....XWork拦截器 ........

    Struts2入门v3.0.pdf

    - **Struts2体系结构**:介绍Struts2的工作原理及其组件之间的交互过程。 - **配置文件详解**:讲解如何通过配置文件来定制Struts2的行为。 - **Action配置**:介绍如何创建和配置Action类来处理业务逻辑。 ####...

    轻松入门之Struts2

    #### 二、Struts2体系结构与配置 ##### 3.1 Struts2的体系结构 Struts2采用了MVC(Model-View-Controller)架构模式,其中: - **模型(Model)**:负责处理数据逻辑,通常是由JavaBean构成。 - **视图(View)**:...

    Struts2笔记(初学者福音)

    Struts2的体系结构与Struts1有显著差异,它采用了WebWork的核心设计思想,大量使用拦截器处理用户的请求,从而实现了业务逻辑与Servlet API的解耦。 ##### 处理流程概述 - **加载类**:通过`FilterDispatcher`加载...

    struts2精通

    - **体系结构**:Struts2主要由XWork和Struts2两部分组成,其中XWork负责核心逻辑处理,而Struts2则提供了丰富的插件支持和便捷的Web开发接口。在实际开发过程中,通常需要引入以下核心库: - `struts2-core.jar`:...

    达内2012三大框架之struts2附pdf和代码(最新版pdf)

    首先,我们来看“Struts2详细流程图.png”和“Struts2体系结构图.png”。这两张图片是理解Struts2工作原理的关键。Struts2的流程图通常会展示一个请求从客户端到服务器,再通过Struts2框架处理,最后返回响应的过程...

    Struts的体系结构[归类].pdf

    在深入理解Struts的体系结构之前,需要对JSP/Servlet的Web层应用、J2EE架构以及模型-视图-控制器设计模式有所了解。 一、框架(Framework)概念 框架是一种预先设计的软件结构,它提供了一个基础平台,开发者可以在...

    struts2JAR包

    其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为...

    Struts 2中文帮助文档

    其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为...

Global site tag (gtag.js) - Google Analytics