﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-clwbeyond</title><link>http://www.blogjava.net/clwbeyond/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 05:17:12 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 05:17:12 GMT</pubDate><ttl>60</ttl><item><title>struts2配置文件介绍</title><link>http://www.blogjava.net/clwbeyond/archive/2007/05/10/116554.html</link><dc:creator>clwbeyond</dc:creator><author>clwbeyond</author><pubDate>Thu, 10 May 2007 10:07:00 GMT</pubDate><guid>http://www.blogjava.net/clwbeyond/archive/2007/05/10/116554.html</guid><wfw:comment>http://www.blogjava.net/clwbeyond/comments/116554.html</wfw:comment><comments>http://www.blogjava.net/clwbeyond/archive/2007/05/10/116554.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clwbeyond/comments/commentRss/116554.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clwbeyond/services/trackbacks/116554.html</trackback:ping><description><![CDATA[<p>一、Struts2配置文件 <br>Struts2相关的配置文件有web.xml，struts.xml，struts.properties， <br>struts-default.xml，velocity.properties，struts-default.vm。其中web.xml，struts.xml是必须的，其它的配置文件可选择。它们在web应用中的功能如下： <br>web.xml：包含所有必须的框架组件的web部署描述符。 <br>Struts.xml:配置包含result/view类型、action映射、拦截器等的Struts2的主要配置文件。 <br>Struts.properties：配置struts2的框架属性。 <br>Struts-default.xml：在文件在struts-action-x.x.jar中，该文件是应该被包含在struts.xml中的缺省配置。 <br>Welocity.properties：重写了velocity的配置文件。 <br>Struts-default.vm：相对于velocity的缺省配置。</p>
<p>二、Struts2配置元素 <br>Struts2核心的配置文件是缺省的struts.xml。 <br>必要的时候，缺省的配置文件可以包含其它的配置文件；struts文件可以放入jar中，并自动插入应用程序，这样每个模块可以包含自己的配置文件并自动配置。在Freemarker和Velocity模块中，模板也能从classpath中加载，所以整个模块可以作为一个简单的jar文件被包含。 <br>Struts.xml配置文件可以包含Interceptor、Action类和Results。 <br>Struts.xml配置元素说明：</p>
<p>1、Packages <br>Packages:packages把actions、results、results types、interceptors <br>和interceptor-stacks组装到一个逻辑单元中，从概念上讲，packages就像一个对象，可以被其它子包从写，而且可以拥有自己独立的部分。 <br>Name属性是packages的必填元素，它作为一个关键字被后边的包引用；extends元素是可选的，它允许包扩展一个和多个前边定义的包。注意， <br>struts.xml文件是至上而下处理的，所有被扩展的包，需要在扩展包前定义。 <br>Abstract元素是可选的，它可以申明一个不包含actions的配置文件。</p>
<p>2、Namespace <br>Namespace元素把actions细分到逻辑模块，每一个namespace都有自己的 <br>前缀（prefix），namespace避免了action之间的名字冲突，当前缀出现在URI中时，这些标签都是名字空间感知的（&#8220;namespace aware&#8221;），所以这些namespace prefix不必嵌入到表单或连接中。 <br>Default的namespace是一个空字符串&#8220;&#8221;，如果在指定的配置文件中，没有找到action，缺省的namespace也会被查找。Local/global策略允许应用程序在action &#8220;extends&#8221;元素层次结构之外，有全局的action配置。缺省的namespace也可以不在package中申明。 <br>Namespace prefix可以注册为java的申明式安全，以确保授权的用户才能访问namespace的资源。 <br>Root namespace(&#8220;/&#8221;)也被支持，root就是当直接请求context path的时候的namespace。</p>
<p>[个人理解：namespace的用法就像struts1.x中的path一样，只不过它在package中什么路径，而在action中申明action名子罢了]</p>
<p>3、Include <br>Include元素使得框架能应用&#8220;divide and conquer&#8221;来配置文件。被include <br>的每个配置文件必须和struts.xml有一样的格式，一个大的项目可以采用这样方式来组织程序模块。 <br>Include元素也可以和package交替出现，框架将按照顺序加载配置文件。</p>
<p>4、Interceptor configuration <br>Interceptor允许应用程序在Action方法执行前后定义执行代码， <br>Interceptor在应用程序开发中十分重要，对于Interceptor有许多用例，如validation, property population, security, logging, 和profiling。 <br>Interceptor被定义为一个Java类，Interceptor也可以组装成Interceptor-stack，他们将按照定义的顺序执行。 <br>在struts-default.xml中定义了一些缺省的Interceptor-stack,以便框架能很好地运行。</p>
<p>5、Action <br>Action是框架的&#8220;工作单元&#8221;。Action可以指定一个Interceptor-stack、 <br>一序列的return type和一序列的异常处理，但只有name属性是必须的。</p>
<img src ="http://www.blogjava.net/clwbeyond/aggbug/116554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clwbeyond/" target="_blank">clwbeyond</a> 2007-05-10 18:07 <a href="http://www.blogjava.net/clwbeyond/archive/2007/05/10/116554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>