1-1 struts2 基本配置 struts.xml配置文件详解
详见http://www.cnblogs.com/dooor/p/5323716.html
一. struts2工作原理(网友总结,千遍一律)
1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6 ActionProxy创建一个ActionInvocation的实例。
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。
二.struts2基本配置
<struts>
<!-- 开发模式下使用,打印更多详细错误信息 -->
<constant name="struts.devMode" value="true" />
<!-- 国际化 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 允许ognl访问静态方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
<!--
该属性指定需要struts2处理的请求后缀,默认值是action,即,所有匹配*.action的请求
都由struts2处理,如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号","隔开
-->
<constant name="struts.action.extension" value="action"/>
<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false"/>
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值false:不重新加载 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 默认的视图主题 -->
<constant name="struts.ui.theme" value="simple"/>
<!-- 与spring集成时,指定由spring负责管理action对象的创建 -->
<constant name="struts.objectFactory" value="spring"/>
<!-- 该属性设置struts2是否支持动态方法调用,默认值true:支持 -->
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<!-- 上传文件的大小限制 -->
<constant name="struts.multipart.maxSize" value="10701096"/>
<!-- 引入文件 -->
<include file="cn/qjc/action/login/login.xml"></include>
<include file="cn/qjc/action/demo/demo01.xml"></include>
<include file="cn/qjc/interceptor/interceptor.xml"></include>
</struts>
struts2配置文件加载顺序
a、default.properties:struts2-core**.jar org.apache.struts包中(程序员只能看)
b、struts-default.xml:struts2-core**.jar中(程序员只能看)
c、struts-plugin.xml:在插件的jar包中(程序员只能看)
d、struts.xml:在应用的构建路径顶端。自己定义的Struts配置文件(推荐)
e、struts.properties:在应用的构建路径顶端。程序员可以编写(不推荐)
f、web.xml:配置过滤器时,指定参数。程序员可以编写(不推荐)
特别注意:顺序是固定的。后面的配置会覆盖前面的同名配置信息。
加载struts.xml过程

说明:
1、 在启动的时候加载了三个配置文件 struts-default.xml、struts-plugin.xml、struts.xml
2、 如果这三个文件有相同的项,后面覆盖前面的。
3、 struts.xml文件必须放在src下才能找到。
2.2 package元素
意义:分模块开发
属性:
name:必须的。配置文件中要唯一。就是一个名字。
extends:指定父包。会把父包中的配置内容继承下来。一般需要直接或间接的继承一个叫做“struts-default”的包(在struts-default.xml配置文件中)。
如果不继承该包,那么Struts2中的核心功能将无法使用。
abstract:是否是抽象包。没有任何action子元素的package可以声明为抽象包。
namespace:指定名称空间。一般以”/”开头。该包中的动作访问路径:namesapce+动作名称。如果namespace=””,这是默认名称空间,和不写该属性是一样的。
2.3 action配置
作用:定义一个动作。
属性:
name:必须的。动作名称。用户用于发起请求。在包中要唯一。
class:指定动作类的全名。框架会通过反射机制实例化。默认是:com.opensymphony.xwork2.ActionSupport。
method:指定动作类中的动作方法。框架会执行该方法。默认是execute()。
<!-- 配置全局视图:访问动作时没有局部视图,则找全局视图 -->
<package name="default" extends="struts-default" abstract="true">
<global-results>
<result name="success">/WEB-INF/login/success.jsp</result>
</global-results>
</package>
<package name="login" namespace="/user" extends="default">
<action name="login" class="cn.qjc.action.login.Login" method="login">
<!-- type默认dispatcher 表示请求转发 -->
<result name="success" type="dispatcher">/WEB-INF/login/success.jsp</result>
<result name="error">/WEB-INF/login/error.jsp</result>
</action>
</package>
1-1 struts2 基本配置 struts.xml配置文件详解的更多相关文章
- struts2学习笔记--struts.xml配置文件详解
这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...
- struts2.0中struts.xml配置文件详解
先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...
- 转载 Struts2的配置 struts.xml Action详解
在学习struts的时候,我们一定要掌握struts2的工作原理.只有当我们明确了在struts2框架的内部架构的实现过程,在配置整个struts 的框架时,可以很好的进行逻辑上的配置.接下来我就先简 ...
- struts2:struts.xml配置文件详解
1. 几个重要的元素 1.1 package元素 package元素用来配置包.在Struts2框架中,包是一个独立的单位,通过name属性来唯一标识包.还可以通过extends属性让一个包继承另一个 ...
- struts2中struts.xml配置文件详解【未整理】
1. 深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1. 包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...
- struts2中struts.xml配置文件详解
struts.xml的常用配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...
- struts2 struts.xml配置文件详解
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quo ...
- struts2.0 struts.xml配置文件详解
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quo ...
- sqlMapConfig.xml配置文件详解
sqlMapConfig.xml配置文件详解: Xml代码 Xml代码 <? xml version="1.0" encoding="UTF-8" ?& ...
随机推荐
- 编码问题 php字符编码转换类
各种平台和软件打开显示的编码问题,需要使用不同的编码,根据我们不同的需求. php 字符编码转换类,支持ANSI.Unicode.Unicode big endian.UTF-8.UTF-8+Bom ...
- linux_group总结
group_name:passwd:GID:user_list 在/etc/group 中的每条记录分四个字段: 第一字段:用户组名称: 第二字段:用户组密码: 第三字段:GID 第四字段:用户列表, ...
- linux清屏命令(clear,reset)
(1)clear 这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息.一般都会用这个命令. (2)reset 这个命令将完全刷新终端屏幕,之前的终端输入 ...
- linux虚拟化概述
虚拟化硬件虚拟化:一台物理机虚拟出多台逻辑上的计算机cpu,内存可分配给多个虚拟机软件虚拟化:一个LAMP平台支撑多个网站桌面虚拟化...... 虚拟机:通过软件平台模拟出的计算机对最终用户来说,感受 ...
- 前端日常常用git命令
讲真,很早之前就想总结一下git常用的命令了,每次用着用着很多命令都记不住.而且我是英语渣包,有些单词慢慢靠背. git只是一个工具,我这写的只是适合我这种快速上手使用工具的小白,深究的请移步别处. ...
- 从零开始学习前端JAVASCRIPT — 12、JavaScript面向对象编程
一.构造函数的使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Win7/8出现An error occurred on the server when processing the URL解决办法
使用的是win8系统搭建的本地服务器,win7使用的方法是相同的.如果你的系统是精简版的Win7/8,那么安装IIS7也有可能出现这问题.下面SJY带领大家来解决这个错误. 解决方法 打开控制面板→管 ...
- stm32开发之标准库的介绍
1 STM32标准外设库概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序.数据结构和宏组成,包括了微控制器所有外设的性能特征.该函数库还包括每一个外设的驱动描 ...
- CentOS源码包安装apache、nginx服务
1.通过官网下载apache.nginx源码包 2.进入apache源码包所在目录,解压tar -xf httpd-2.4.12.tar.gz 3.cd httpd-2.4.12 4.阅读README ...
- hdu5730 Shell Necklace
重温了这道cdq+FFT 讲白了就是不断对 dp[l~mid] 和 sh[1~r] 进行fft 得到 dp[mid+1~r] #include<bits/stdc++.h> using n ...