`
hackbomb
  • 浏览: 213245 次
  • 性别: 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学习笔记(1)

    2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件的中的声明部 分,以前写这个文件的话可以直接复制粘贴过来,没有写...

    达内笔记(CoreJava.pdf、EJBNote.pdf、Hibernate.pdf、HTML.pdf、JDBC.pdf、JSP.pdf、Oracle SQL.pdf、Servlet.pdf、Struts.pdf、XML.pdf、分页.pdf、购物车.pdf)

    达内笔记(CoreJava.pdf、EJBNote.pdf、Hibernate.pdf、HTML.pdf、JDBC.pdf、JSP.pdf、Oracle SQL.pdf、Servlet.pdf、Struts.pdf、XML.pdf、分页.pdf、购物车.pdf)

    struts2.2学习笔记

    struts2.2学习笔记总结,action,拦截器,过滤器,国际化,struts.xml解析等的总结。

    struts2学习笔记!

    struts2学习笔记!因为还没有全部学完,所以分部分分享!主要内容:struts.xml配置,web.xml配置 Action要点!全局类型转换,部分类型转换,类型转换文件 类型装换错误的处理问题局部使用,把中文汉字转换为编码 struts2对...

    struts2笔记(配置,标签库等)

    struts.xml的配置, xeb.xml中的Filter的配置(前端控制器) 包的配置, 拦截器,拦截栈, 表单中取数据的方法

    java unix sping ajax struts hibernate 学习笔记

    Unix 学习笔记 Core Java 学习笔记 Tiger 学习笔记 XML 学习笔记 Oracle 学习笔记 JDBC 学习笔记 Hibernate 学习笔记 ...Servlet 学习笔记 ...Struts 学习笔记. Ajax 学习笔记 EJB 学习笔记 Spring 学习笔记

    计算机软件编程学习笔记.rar

    计算机软件编程学习笔记: 01. Unix note.txt 02. SQL note.txt 03. PL SQL note.txt 04. CVS note.txt 05. Core Java exercise.txt 05. Core Java note.txt 06. OOAD & UML note.txt 07. Xml note.txt 08. JDBC ...

    struts2学习笔记

    Strust2中,strust2是通过Filter启动的。启动web应用的时候,服务器会加载项目下的web.xml文件,在这个web.xml文件中配置相关的参数,实际上是一个过滤器。

    struts学习笔记

    建立一个Java Web项目,提取最少运行Struts2应用的包集合,目标:实现一个简单的用户登录 包括内容: 一、先实现登录页面 二、实现处理页面的Action 三、配置Web.xml 四、配置Action处理结果和资源资源之间的映射关系 ...

    Struts2的结构和编写过程笔记

    本文件是我的教学心得,供大家分享。其中包括jar的下载安装和web.xml、struts2.xml的编写方式和方法。

    Java/JavaEE 学习笔记

    XML学习笔记...............106 XML前言...............106 第一章 XML Overview....................107 第二章 DTD...........109 第三章 XML Namespaces................111 第四章 XML Schema.....................

    struts2入门笔记与源码

    学习struts2的笔记与源码:输入验证、国际化、拦截器等

    J2EE学习笔记(J2ee初学者必备手册)

    XML学习笔记...............106 XML前言...............106 JavaEE@xuxiang 2 Java/JavaEE学习笔记Jonny xuxiang5612@sina.com 第一章 XML Overview....................107 第二章 DTD...........109 第三章 XML ...

    达内培训五个月以来的笔记:tarena_note

    达内培训五个月以来的笔记:tarena_note 包含以下十八个文档,系统的记录了达内五个月培训的整个过程,非常实用,推荐下载. 分数比较贵,不过物有所值. 01. Unix note.txt 02. SQL note.txt 03. PL SQL note.txt 04. ...

    j2ee SSH 整合笔记,献于新手。。

    合ssh 思路,用spring 管理 struts 的action ,与hibernate 的dao 持久层。 先载入jar包,在myeclipse里 增加 struts 增加 hibernate ...第二步 配置hibernate,我们打开hibernate.cfg.xml 设置一系列的参数。 ....

    holemar学习笔记(2011-12-21)

    这是本人多年积累的学习笔记,记录详细、内容宽广,对新手高手都会有所帮助 作者: 冯万里(Holemar) 邮箱: daillow@gmail.com QQ: 292598441 MSN: daillo@live.cn 更新日期: 2011-12-21 文档都可以用文本编辑器...

    xml学习笔试,超级好

    我有全手套的java相关技术的笔记,超级好。如: 1_unix.rar; 2_corejava_tiger.rar; 3_xml.rar; 4_oracle.rar; 5_jdbc.rar; 6_hibernate.rar; 7_html.rar; 8_servlet.rar; 9_jsp.rar; 10_struts2.rar; 11_...

    tarena达内大部分笔记(xml,struts,spring,hibernate,oracle,jsp,jdbc,corejava,servlet)

    内容很多,包含达内大部分笔记,如果你感到哪里不足,请留言,我继续补充。 目录如下 ├─xml ├─struts ├─spring │ ├─spring-note │ └─spring-day2PM │ ├─exec │ ├─aop3 │ ├─aop2 │ └─aop1 ├...

    Struts2 + Hibernate开发笔记(二).txt

    我们在admin-action.xml配置中可以看到一句 &lt;result name="city"&gt;/admin/city.jsp 而在loadCity方法中有这样一句 return "city"; 这样,当loadCity执行完后,就会返回到http://localhost/admin/city.jsp页面

Global site tag (gtag.js) - Google Analytics