Struts2配置文件

简介:

与Struts2相关的配置文件有好几个,常用的有 struts.properties , web.xml, struts.xml等。web.xml中配置Struts2的分发器Filter。struts.properties里配置Struts2的一些属性。struts.xml里配置了Struts2的Action。Struts2的下载地址:http://struts.apache.org/

目录:

  1. struts.proerties
  2. web.xml
  3. struts.xml
  4. struts常数的配置与搜索
  5. struts最小依赖包

struts.properties

struts.properties配置了Struts2的一些参数。每个可配的参数都有一个默认值。该文件不是必须的,如果无需改变任何参数值,可以不用添加该文件。

常用的需要在struts.properties里重新配置的属性有:

//指定默认编码集,对于请求参数带有中文的情况应该设置陈GBK或GB2312.默认值UTF-8
struts.i18n.encoding=GB2312
//是否每次HTTP请求到达时,都重新加载国际化资源文件。默认值false
struts.i18n.reload=true
//但struts.xml改动后,是否重新加载该文件。在开发阶段建议将此属性设置为“true”,提高开发效率。默认值false
struts.configuration.xml.reload=true
//是否使用Struts2的开发模式,可以获得更多报错信息,便于调试。在开发阶段设置为true。默认值false
struts.devMode = true
//设置浏览器是否缓存静态页面。开发阶段设置为false,以获得服务器的最新响应。默认值true
struts.serve.static.browserCache=true
//指定后缀为.action形式的请求可被Struts2处理。可配置多个请求后缀,比如.do、.struts2等,配置时多个后缀名用逗号隔开
struts.action.extension=action,do,struts2,
//配置服务器运行时的端口号。一般情况下该属性不修改,如果端口号占用则重新分配端口号。默认值80
struts.url.http.port = 8080

注:Struts2的默认属性位于struts2-core-2.0.11.1.jar包org/apache/struts2下面的default.properties里,用户可以在项目的WEB-INF/class下添加struts.properties覆盖默认的配置。

web.xml

任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中的Servlet才会被加载。通常所有MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载StrutsPrepareAndExecuteFiter,该Filter将会加载应用的Struts2框架。

除此之外,还可以在Web.xml中配置Struts2常量(struts.properties文件专门用于配置常量)。

配置StrutsPrepareAndExecuteFiter的代码如下:

 <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注:以上代码段存在于struts2-blank\WEB-INF中的web.xml

struts.xml

struts.xml是Struts2的核心配置文件,里面配置Action, JSP, Exception, Intercepter等。另外,struts.properties里的配置也可以配置在struts.xml中。

一个较为完整的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> <!-- http://localhost:8081/hotelsys/test/demo.do 1. StrutsPrepareAndExecuteFilter根据struts.xml配置文件的信息,确定凡是*.do结尾的请求,均归struts处理。
2. 一旦发现.do结尾请求出现,直接拦截,做以下操作:
a. http://localhost:8081/hotelsys/test/demo (去除识别标志)
b. /test/demo (获得真正访问资源地址信息)
c. /test获得目录,去匹配对应的包的namespace
d. demo 获得action的名字,去对应包中查找,如果找到,则创建该action的实例,调用其execute方法一次。 --> <!-- 设置为开发模式,系统运行速度将降低,但是提供的出错提示更加直观,一般用于系统调试的时候使用 -->
<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value="do"/> <!--所有以*.do结尾的请求全部归struts处理 ,如果没有显式指定action识别后缀,默认就是action, 比如toInput.action-->
<constant name="struts.ui.theme" value="simple"></constant> <!-- struts2将自动帮程序员生成网页,提供了多种生成模版 -->
<constant name="struts.i18n.encoding" value="utf-8"></constant> <!--
package是若干个拥有相关功能的action的群组
-->
<package name="demoPak" namespace="/test" extends="struts-default">
<action name="demo" class="edu.fjnu.hotelsys.action.DemoAction">
</action>
</package> <package name="hotelsys-default" namespace="/" extends="struts-default"> <interceptors> <interceptor name="authentication" class="edu.fjnu.hotelsys.interceptor.AuthenticationInterceptor"></interceptor> <!-- 普通需要权限的用户操作 普通的,需要身份验证才可以使用的action,将使用user拦截器stack-->
<interceptor-stack name="user">
<interceptor-ref name="authentication" />
<interceptor-ref name="defaultStack" />
</interceptor-stack> <!-- 普通需要权限的用户表单提交 需要身份验证才可以使用的action,同时该action中拥有表达提交操作,将使用user-submit拦截器 stack -->
<interceptor-stack name="user-submit">
<interceptor-ref name="user" />
</interceptor-stack> <!-- 需要身份验证才可以使用的action,同时该action中拥有表达提交操作,同时该表单具备文件提交功能,将使用user-file-submit拦截器
stack -->
<interceptor-stack name="user-file-submit">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/pjpeg,image/png</param>
<param name="maximumSize">200000</param>
</interceptor-ref>
<interceptor-ref name="user"/>
</interceptor-stack> <!-- 非权限信息访问 没有任何身份需求,都可以访问的action,将使用guest拦截器stack-->
<interceptor-stack name="guest">
<interceptor-ref name="defaultStack" />
</interceptor-stack> </interceptors> <!-- 没有特殊指明拦截器的action,默认使用user拦截器stack -->
<default-interceptor-ref name="user"/> <global-results>
<result name="gotoLoginAction" type="redirectAction">
<param name="actionName">gotoLogin</param>
<param name="namespace">/security</param>
</result>
<result name="error" type="redirect">/error.jsp</result>
</global-results> </package> <include file="security-module.xml"/>
<include file="room-module.xml"/>
<include file="hotel-module.xml"/>
<include file="user-module.xml"/> </struts>

注:struts.xml配置文件的默认位置在struts2-blank包下/WEB-INF/calsses/struts.xml。可以struts.xml放到MyEclipse项目的src文件夹下。并且,log4j2.xml也在此目录下。

Struts2常数的配置与搜索

配置Struts2常数有3中方式:

1.在struts.properties文件中配置常量。

2.在web.xml文件中配置核心Filter时通过初始化参数来配置常数。

3.在struts.xml文件中使用<constant.../>元素来配置常量。

通常,Struts2框架按如下搜索顺序来加载Struts2常量:

1.struts-default.xml: 该文件保存在 struts2-core-2.3.1.2.jar 文件中。

2.struts-plugin.xml: 该文件保存在 struts2-xxx-2.3.1.2.jar文件中。

3.struts.xml: 该文件是Web应用自己的struts2配置文件。

4.struts.properties: 该文件是Web应用默认的Struts2配置文件。

5.web.xml: 该文件是Web应用的配置文件。

注:上面指定了Struts2框架搜索Struts2常量的顺序,但是如果在多个文件中配置了同一个Struts2常量,则后面一个文件中配置的常量值会覆盖前面文件中配置的常量值。

struts最小依赖包

以struts-2.3.24.1版本为例,struts的最小依赖包的位于:struts-2.3.24.1\apps\struts2-blank\WEB-INF\lib

												

Struts2配置文件的更多相关文章

  1. Struts2配置文件详解

    解决在断网环境下,配置文件无提示的问题我们可以看到Struts.xml在断网的情况下,前面有一个叹号,这时,我们按alt+/ 没有提示,这是因为” http://struts.apache.org/d ...

  2. Struts2 配置文件result的name属性和type属性

    Struts2 配置文件result的name属性和type属性:Name属性SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值: NONE:表示Act ...

  3. Struts2配置文件模板

    <?xml version = "1.0" encoding = "UTF-8"?><!--下面是Struts2配置文件的DTD信息 --&g ...

  4. struts2配置文件中action的name属性

    struts2配置文件中action的name属性的第一个字符不要加斜杠 <action name="see" class="baoxiuManage_seeAct ...

  5. Struts2配置文件讲解

    解决在断网环境下,配置文件无提示的问题我们可以看到Struts.xml在断网的情况下,前面有一个叹号,这时,我们按alt+/ 没有提示,这是因为” http://struts.apache.org/d ...

  6. Struts2 配置文件小结

    每次写的博文都被管理员都被移出首页,好气!还希望有哪位大神可以指点迷津-- struts2 配置文件的 result 节点 result 节点是 action 节点的子节点,他代表着 action 方 ...

  7. struts2配置文件的解释

    1 <?xml version="1.0" encoding="GB2312"?>  <!DOCTYPE struts PUBLIC &quo ...

  8. struts2配置文件加载顺序

    struts2配置文件加载顺序: struts-default.xml/ struts-plugin.xml/ struts.xml/ struts.properties/ web.xml

  9. (二)Struts2配置文件

    一.web.xml文件 web.xml配置文件是一种J2EE配置文件,决定servlet容器的HTTP元素需求如何进行处理.它严格来说不是一个Struts2 配置文件,但它是Struts2 运作所需要 ...

随机推荐

  1. 浪首登录浮层增加收藏入口项目学到的几点知识-IE7 bug、relatedTarget、字符串换行

    这两天做这个项目略有收获,记录如下: 1. 项目中有个bug,在IE7中登录成功时下拉菜单没有展开的情况下总有个残影在页面中,如下图所示: 通过多种方法都没有解决,后来才知道原来是在IE中displa ...

  2. 移动端web出现的一系列问题

    今天做移动端的web,在做后期处理的时候,发现了非常多的问题.下面我分别列举一下吧~~ 1.移动端浏览器众多,各种浏览器之间的显示等都有差异,很多需要单独处理,于是我需要判断分别是什么浏览器.js代码 ...

  3. refresh的停车场 分类: 栈和队列 2015-06-18 17:13 26人阅读 评论(0) 收藏

    refresh的停车场 TimeLimit: 1000ms Memory limit: 65536K 题目描述 refresh最近发了一笔横财,开了一家停车场.由于土地有限,停车场内停车数量有限,但是 ...

  4. 二叉搜索树的后序遍历路径(《剑指offer》面试题24)

    题目:输入一个整数数组,判断该数组是不是二叉搜索树的后序遍历序列的结果,如果是,则返回true,如果不是则返回false.假设输入的数组的任意两个数字都互不相同. 分析:在后序遍历得到的序列中,最后一 ...

  5. 安装opencv以及遇到的坑

    参考这篇文章: http://www.tuicool.com/articles/36fMnem 还是国外的文章靠谱: http://docs.opencv.org/master/dd/dd5/tuto ...

  6. sqlserver2008安装教程

    这几天因为需要,一直想安装sql server 2008来作为Web后台的数据库进行些实验,但总是没有时间,今天终于有时间了,便安装了SQL Server 2008,以下是我的安装的步骤,希望对于有需 ...

  7. An error occurred while filtering resources-----maven项目报错

    解决办法 需要在pom中设定jdk的版本 <plugins> <!-- compiler插件, 设定JDK版本 --> <plugin> <groupId&g ...

  8. mvc api

    ===============================首页===================================================== 扫码 快递公司接口uri: ...

  9. Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨

    Java对象克隆(Clone)及Cloneable接口.Serializable接口的深入探讨 Part I 没啥好说的,直接开始Part II吧. Part II 谈到了对象的克隆,就不得不说为什么 ...

  10. php5.3之前版本升级至5.3以及更高版本后部分语法简单归纳

    1. Deprecated: Assigning the return value of new by reference is deprecated in /usr/local/www/uugui/ ...