`
hackbomb
  • 浏览: 216578 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts.xml笔记

阅读更多

struts2配置文件struts.xml
在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置。它的常用属性有: name:必填属性,用来指定包的名字。
extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action定义、拦截器定义等。
namespace:可选属性,用来指定该包的命名空间。

对于包default:没有指定namespace属性。如果某个包没有指定namespace属性,即该包使用默认的命名空间,默认的命名空间总是""。
对于包my:指定了命名空间/manage,则该包下所有的Action处理的URL应该是“命名空间/Action名”。

在Struts2中可以将一个配置文件分解成多个配置文件,那么我们必须在struts.xml中包含其他配置文件。

< struts >
    < include file = "struts-default.xml" />
    < include file = "struts-user.xml" />
    < include file = "struts-book.xml" />
    < include file = "struts-shoppingCart.xml" />
   
    ......
   </ struts >

常量配置:
Struts2框架还包含了一个struts.properties文件,该文件主义了Struts2框架的大量常量属性。
< struts >
    ......
    < constant name = "struts.custom.i18n.resources" value = "messages" />
</ struts >
表示指定了资源文件的放置在classes目录下,基本名是messages,则在classes目录下您就应该放置类似messages_zh_CN.properties,message_en.properties名的文件。

struts2的action
大 多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重写此类里的public String execute() throws Exception方法。因为此类中实现了很多的实用接口,提供了很多默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方法、默认的处理用户 请求的方法等,这样可以大大的简化Action的开发。

Struts2中通常直接使用Action来封装HTTP请求参数,因 此,Action类里还应该包含与请求参数对应的属性,并且为属性提供对应的 getter和setter方法。(当然,Action类中还可以封装处理结果,把处理结果信息当作一属性,提供对应的getter和setter方法)

Struts2中提供了一个ActionContext类(当前Action的上下文对象),通过这个类可以访问Servlet API。下面是该类中提供的几个常用方法:
public static ActionContext getContext() :获得当前Action的ActionContext实例。
public Object get(Object key) :此方法类似于调用HttpServletRequest的getAttribute(String name)方法。
public void put(Object key, Object value) :此方法类似于调用HttpServletRequest 的setAttribute(String name, Object o)。
public Map getParameters() :获取所有的请求参数。类似于调用HttpServletRequest对象的getParameterMap() 方法。
public Map getSession() :返回一个Map对象,该Map对象模拟了HttpSession实例。
public void setSession(Map session) : 直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名-属性值对。
public Map getApplication() :返回一个Map对象,该对象模拟了该应用的ServletContext实例。
public void setApplication(Map application) :直接传入一个Map实例,将该Map实例里的key-value对转换成application的属性名-属性值对。

DMI:Dynamic Method Invocation 动态方法调用。
动态方法调用是指:表单元素的action不直接等于某个Action的名字,而是以如下形式来指定对应的动作名:<form method="post" action="userOpt!login.action"
则 用户的请求将提交到名为”userOpt”的Action实例,Action实例将调用名为”login”方法来处理请求。同时login方法的签名也是 跟execute()一样,即为public String login() throws Exception。

注意:要使用动态方法调用,必须设置Struts2允许动态方法调用,通过设置struts.enable.DynamicMethodInvocation常量来完成,该常量属性的默认值是true。

在 struts.xml文件中配置<action…>元素时,它的name、class、method属性都可支持通配符,这种通配符的方式是 另一种形式的动态方法调用。当我们使用通配符定义Action的name属性时,相当于用一个元素action定义了多个逻辑Action.

Struts2的Action处理用户请求结束后,返回一个普通字符串-逻辑视图名,必须在struts.xml文件中完成逻辑视图和物理视图资源的映射,才可让系统转到实际的视图资源。

Struts2通过在struts.xml文件中使用<result …/>元素来配置结果。Struts2提供了两种结果。
局部结果:将<result …/>作为<action …>元素的子元素配置。
全局结果:将<result …/>作为<global-results …>元素的子元素配置。

Struts2提供了对不同种类返回结果的支持,常见的有JSP,FreeMarker,Velocity等。
Struts2支持的不同类型的返回结果为:
名字
说明
chain
用来处理Action链
dispatcher
用来转向页面,通常处理JSP ,这是默认的结果类型
freeMarker
处理FreeMarker模板
httpHeader
用来控制特殊的Http行为
redirect
重定向到一个URL
redirect-action
重定向到一个Action
stream
向浏览器发送InputSream对象,通常用来处理文件下载
velocity
处理Velocity模板
xslt
处理XML/XLST模板
plaintext
显示原始文件内容,例如文件源代码
tiles
结合Tile使用

Struts2的异常处理机制通过在struts.xml文件中配置<exception-mapping …>元素完成的,配置该元素时,需要指定两个属性:
exception:此属性指定该异常映射所设置的异常类型。
result:此属性指定Action出现该异常时,系统转入result属性所指向的结果。

局部异常映射:<exception-mapping…>元素作为<action…>元素的子元素配置。
全局异常映射:<exception-mapping…>元素作为<global-exception-mappings>元素的子元素配置。

使用Struts2的标签来输出异常信息:
<s:property value="exception.message"/> : 输出异常对象本身。
<s:property value="exceptionStack"/> : 输出异常堆栈信息。
分享到:
评论

相关推荐

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts.configuration.xml.reload Whether to reload the XML configuration or not 是否加载xml配置(true,false) struts.continuations.package The package containing actions that use Rife continuations ...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    魔乐科技Struts2.x框架笔记

    ### 魔乐科技Struts2.x框架笔记详解 #### 一、框架开发基础与特性 **框架开发来源**:框架开发的核心在于反射机制的应用,它使得开发者能够以更为灵活的方式构建应用程序。在Struts2.x框架中,这一点体现得尤为...

    Struts1.x常用的开发包,需要学习struts1.x朋友可以下载

    3. **配置文件**:Struts1.x的配置主要分为两个部分:struts-config.xml和web.xml。struts-config.xml定义了Action的映射、Form Beans、数据源、以及其他的配置项。web.xml则配置了Struts Filter和Servlet。 4. **...

    Struts2学习笔记

    根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...

    struts2学习笔记(1)

    ### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...

    Struts2学习笔记(一) 环境的搭建与HelloWorld程序

    5. **配置Struts2**:在src/main/resources目录下创建`struts-default.xml`和`struts.xml`文件。在`struts-default.xml`中引入Struts2的默认配置。在`struts.xml`中配置你的Action,如下: ```xml &lt;?xml version=...

    struts笔记

    在本文中,我们将深入探讨Struts2的核心概念和配置,包括HelloWorld示例、配置文件struts.xml、执行流程、命名空间以及Action。 1. **Struts2 HelloWorld**: 创建一个简单的Struts2应用通常从"HelloWorld"开始。...

    Struts2.1学习笔记

    2. **配置Web.xml:** 在项目的`web.xml`文件中,需要配置Struts2的Filter,这是启动Struts2的关键步骤。通常,Filter的名称设置为`struts2`,并指定其对应的类为`org.apache.struts2.dispatcher.ng.filter....

    struts2详细学习笔记

    2. **修改Struts2的配置常量**:有多种方式可以覆盖默认常量,如在应用的`struts.properties`文件中直接定义、在`struts.xml`的`&lt;constant&gt;`标签内声明,或在`web.xml`中配置过滤器参数。 - 方式一:在`struts....

    黑马程序员Struts2笔记

    本笔记主要涵盖了Struts2的基础知识,包括但不限于配置、Action、拦截器、结果类型以及异常处理等内容。 1. **Struts2框架简介** Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,弥补了Struts1在...

    牧紫小岩的Struts2学习笔记

    ### 牧紫小岩的Struts2学习笔记精要 #### Struts2与Struts1对比 在**牧紫小岩的Struts2学习笔记**中,提到了Struts1和Struts2在实例化Action上的关键差异。Struts1在启动时创建Action实例,并在整个应用程序运行...

    struts2学习笔记!

    ### Struts2学习笔记 #### 一、Struts2配置文件详解 在深入理解Struts2框架之前,我们首先需要了解其核心配置文件——`struts.xml`。 **1. struts.xml配置** ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!...

    良葛格学习笔记Struts.rar

    在"良葛格学习笔记Struts.rar"压缩包中,我们可以期待找到关于Struts框架的详细学习资料,包括理论概念、实践示例以及可能的代码片段。 Struts框架的核心组件包括: 1. **ActionServlet**:作为Struts框架的入口点...

Global site tag (gtag.js) - Google Analytics