文档章节

struts2配置文件的加载顺序以及 struts.xml package 的配置说明

芥末小弟
 芥末小弟
发布于 2017/03/01 09:52
字数 988
阅读 5
收藏 0
点赞 0
评论 0

查看StrutsPrepareAndExecuteFilter:(核心过滤器)两个功能 :预处理 和 执行

在预处理功能中 init 方法中会有加载配置文件的代码:

dispatcher.init();

            init_DefaultProperties(); // [1]                  ---- 加载org.apache.struts.default.properties.配置的是struts2的所有常量.

            init_TraditionalXmlConfigurations(); // [2]       ---- 加载struts-default.xml、struts-plugin.xml、struts.xml

            init_LegacyStrutsProperties(); // [3]             ---- 加载用户自定义struts.properties

            init_CustomConfigurationProviders(); // [5]       ---- 加载Struts2定义Bean.

            init_FilterInitParameters() ; // [6]              ---- 加载web.xml

            init_AliasStandardObjects() ; // [7]              ---- 用户自定义Bean

 

结论:

* default.properties

* struts-default.xml

* struts-plugin.xml

* struts.xml             ---- 配置Action以及常量.(******)

* struts.properties      ---- 配置常量

* web.xml                ---- 配置核心过滤器及常量.

 

***** 后配置的常量 会 覆盖先配置的常量.

<package>的配置:

* package:包. 不是java中说那个包. Struts2中的包 管理<action>.

* 属性:

* name       :包名.包名是唯一的不能重复的.

* extends    :继承.继承struts-default.(struts-default包中定义结果类型和拦截器.)

* namespace  :名称空间.与<action>标签中的name属性共同决定Action的访问路径.

* 写法:

* namespace有名称:   namespace=”/aa”

* namespace只是一个/: namespance=”/”

* namespace默认的:   namespace没写.

 

* 有如下配置:

<package name="demo1" extends="struts-default" namespace="/aa/bb/cc">

    <action name="demo1" class="cn.itcast.struts2.demo1.StrutsDemo1"/>

</package>

 

<package name="demo2" extends="struts-default" namespace="/aa/bb">

    <action name="cc/demo1" class="cn.itcast.struts2.demo1.StrutsDemo2"/>

</package>

 

<package name="demo2" extends="struts-default" namespace="/aa">

    <action name="bb/cc/demo1" class="cn.itcast.struts2.demo1.StrutsDemo3"/>

</package>

 

<package name="demo2" extends="struts-default" namespace="/">

    <action name="aa/bb/cc/demo1" class="cn.itcast.struts2.demo1.StrutsDemo3"/>

</package>

 

在页面中<a href=”/aa/bb/cc/demo1.action”>访问</a>

***** 名称空间最大化:访问路径中:/aa/bb/cc/demo1.action 首先将/aa/bb/cc都作为名称空间.demo1作为action的name去查询.

* abstract   :抽象的.用于使其他的包可以继承的.

* <package name="struts-default" abstract="true"> . 所以可以继承struts-default.

 

<action>的配置:

* action:配置Action类的访问路径.

* 属性:

* name   :名称.与<package>中的namespace属性共同决定访问路径.

* class  :类的全路径.要执行的Action类的全路径.

* method :方法.用来指定Action中执行那个方法的方法名.(默认的值execute)

 

<result>的配置:

* result:配置Action执行后的页面跳转.

* 属性:

* name   :逻辑视图名称.(不是真实的视图,为真实的视图起了一个别名,在Action中返回这个字符串的别名,从而找到具体页面.)

* type   :跳转的类型.

Action中的默认值:

<package>的namespace的默认值: 什么都没写.

<action>的class的默认值:

* 在struts-default.xml中:

<default-class-ref class="com.opensymphony.xwork2.ActionSupport" />

<result>的name的默认值:

* name默认就是success.

默认的Action的配置和Action的默认处理类:

默认的Action         :访问一个Action.但是这个Action路径写错了.(404的错误.配置一个默认的Action,当找不到Action的时候,让默认的Action来执行.)

* <default-action-ref name=""/>

Action默认处理类      :访问一个Action的时候,路径没有错误.但是class中类的路径写错了或者没写.

* <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />

 

 常量的配置:

修改常量:

* struts.xml         :

* 格式:<constant name="常量名称" value="常量的值"/>

* struts.properties  :

* 格式:常量的名称=常量的值.

* web.xml            :

*   <filter>

     <filter-name>struts2</filter-name>

     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

     <init-param>

         <param-name>常量名称</param-name>

         <param-value>常量值</param-value>

     </init-param>

  </filter>

 

Struts2常用的常量:

* struts.i18n.encoding=UTF-8         :解决Struts2中的所有的POST请求的中文乱码.

* struts.action.extension=action,,       :action的访问的后缀名.默认值不是.action或者空(不写后缀名也可以访问.).

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

* struts.devMode=false                   :解决修改了配置文件之后不需要重启服务器.

* <constant name="struts.devMode" value="true"></constant>

分模块开发的时候

<include file="cn/itcast/struts2/demo1/struts_demo1.xml"/>  整合其他的struts的配置文件.

 

 

struts xml  模版

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<constant name="struts.devMode" value="true"></constant>
	<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

	<package name="package1" extends="struts-default" namespace="">
		<default-action-ref name="demo2"></default-action-ref>
		<default-class-ref class="cn.jiemoxiaodi.demo3.Struts2Demo3"></default-class-ref>
		<action name="demo1" class="cn.jiemoxiaodi.demo1.Struts2Demo1"
			method="">
			<result name="success">/demo1/success.jsp</result>
		</action>
		<action name="demo2" class="cn.jiemoxiaodi.demo2.Struts2Demo2"
			method="">
		</action>

		<action name="demo3">
		</action>
	</package>

	<include file="cn/jiemoxiaodi/demo4/struts4.xml"></include>
	<include file="cn/jiemoxiaodi/pojodemo/struts_pojo.xml"></include>
	<include file="cn/jiemoxiaodi/demo5/struts_book.xml"></include>
	<include file="cn/jiemoxiaodi/servletapi/struts_servletapi.xml"></include>
</struts>

© 著作权归作者所有

共有 人打赏支持
芥末小弟
粉丝 0
博文 202
码字总数 120715
作品 0
昌平
Struts2常量的配置

struts.xml配置文件最大的作用就是配置Action和请求之间的对应关系,并配置逻辑视图名和物理视图资源之间的对应关系。除此之外,struts.xml文件还有一些额外的功能,例如Bean配置、配置常量、...

摆渡者 ⋅ 2014/03/02 ⋅ 0

struts基础知识

1 struts框架入门: 1 jsp页面: hello.jsp:<a href="${pageContext.request.contextPath}/hello.action">struts入门</a> success.jsp:结果处理页面 2 web.xml中配置前端配置器: </welcome-......

day戴 ⋅ 2014/07/17 ⋅ 0

【JAVA学习】——Struts2的配置文件

1、加载时机: 当应用被tomcat加载的时候,struts2的配置文件就已经被加载过了。 2、加载顺序 注意: 1、Struts2提供了两种配置的方式。一种是key=value的方式,即使用.properties文件。另一...

fjj15732621696 ⋅ 01/07 ⋅ 0

Struts2 学习(一)

一、搭建Struts2开发环境: 1),下载struts2所需jar包: 到http://struts.apache.org/download.cgi#struts2014 下载struts-2.x.x-all.zip,下载完后解压文件,开发struts2应用需要依赖的jar...

宇宙执政 ⋅ 2014/12/15 ⋅ 0

struts2源码分析之配置文件加载顺序

本次源码分析的目标: 弄清struts2加载各配置文件的顺序,得到此配置文件加载顺序,则源码分析任务结束。 引言 问题的引出是由于前些天在oschina上看到的一篇帖子,http://www.oschina.net/...

算法与编程之美 ⋅ 2013/04/09 ⋅ 6

Struts2初始化流程

在讲Struts2的初始化之前,应该为大家描述下Web应用中的过滤器Filter,这关系到我们对核心过滤器FilterDispatcher的正确理解。 Filter:一个filter是一个对象,为每个请求资源(一个servlet或...

陶邦仁 ⋅ 2012/08/29 ⋅ 1

Struts2的动态Action和全局跳转视图以及配置各项默认值

1:Struts2的默认访问后缀是.action(特别需要注意的是改了配置文件web.xml或者struts.xml需要重启服务器) 2:Struts2中常用的常量介绍:

别叫小伙 ⋅ 2017/02/20 ⋅ 0

struts2的配置

xml绑定本地约束的方法: window-->preferences(-->MyEclipse-->Files and Editors)-->XML-->XML Catalog-->user specified Entires-->Add 中: 在出现的窗口中的Key Type 中选择URI,在locat......

gsanye ⋅ 2017/06/11 ⋅ 0

Struts2之【配置文件】

Struts2使用需要用到两个配置文件 struts.xml : Struts2自己的配置文件,用来配置Action web.xml : 用来加载Struts2框架 1.struts.xml struts.xml是Struts2默认的文件名,一般不会更改。 真正...

言筱羽 ⋅ 2016/01/26 ⋅ 0

Struts2学习(二):struts2配置详解!

Struts2框架按照以下搜索顺序加载Struts2常量: 1.struts-default.xml---该文件保存在struts2-core-2.x.x.jar文件中 2.struts-pluugin.xml---在struts2一些插件jar包里,比如struts2-xxx-plu...

这个人很懒-啥都没写 ⋅ 2013/07/19 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 24分钟前 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 29分钟前 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 55分钟前 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 昨天 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部