笔记:Struts 2.3.31 配置说明
- 复制文件到站点的 WEB-INF\lib 目录,文件列表如下,黄色突出显示的是必须加入的核心包
- struts2-core-2.3.31.jar:struts2 的核心库
- xwork-core-2.3.31.jar:由于Struts2是由xwork的延伸
有些类依然关联着 xwork的类 - javassist-3.11.0.ga.jar:代码生成工具Hibernate用它在运行时扩展java类和实现,同cglib包
- ognl-3.0.19.jar:OGNL表达式语言,struts2支持该EL
- freemarker-2.3.22.jar:是一个模板引擎,一个基于模板生成文本输出的通用工具
- commons-io-2.2.jar:IO工具类封装
- commons-fileupload-1.3.2.jar:struts的上传下载
- commons-logging-1.1.3.jar:struts 的日志
- struts2-convention-plugin-2.3.31.jar:convention 插件,支持 action 的约定映射,依赖(asm-3.3.jar、asm-commons-3.3.jar、asm-tree-3.3.jar)
- asm-3.3.jar:小巧轻便的Java字节码操控框架
- asm-commons-3.3.jar:小巧轻便的Java字节码操控框架
- asm-tree-3.3.jar:小巧轻便的Java字节码操控框架
- struts2-config-browser-plugin-2.3.31:这个插件可以清楚的看出struts2应用下部署的 action以及action详细的映射信息
- Struts2-json-plugin-2.3.16.3.jar:JSON插件
- web.xml 配置增加 struts 的 Filter
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Struts 2 Web Application</display-name>
<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>
</web-app>
- struts.xml 配置说明
- 文件路径位于Web项目的src目录中,运行时必须在Web项目的 WEB-INF/classes 中,在编译过程中 eclipse 会将 src目录中的 struts.xml 复制到 WEB-INF/classes 中,以下是 struts.xml 配置文件的 DTD 和根节点
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<!--struts 其他配置节点-->
</struts>
- constant 节点,是配置常量值,具体的常量值请参考 struts.properties,此处配置优先级低于 web.xml 中配置,配置示例
<constant name="" value=""/>
- Include 节点,导入其他配置文件,通过这种方式可以将 struts2的Action按照模块配置在多个配置文件中,其配置文件格式与 struts.xml 一致,配置示例
<include file=""/>
- package 节点,用于定义包配置,每个package元素定义了一个包配置,有如下属性
- name:
用于定义包配置,每个package元素定义了一个包配置,必须属性 - extends:指定该包继承其他包。继承其他包,可以继承其他包中的Action定义、拦截器定义等
- namespace:指定该包的名字空间,将action分成逻辑上的不同模块,每一个模块有自己独立的前缀。使用namespace可以有效的避免action重名的冲突,例如每一个package都可以有自己独立的Menu和Help action,但是事项方式各有不同
- abstract:指定包是否为抽象包,为抽象包则不能有 action 的定义
- 注意:package里元素必须按照一定的顺序排列 result-types、interceptors、default-interceptor-ref、default-action-ref、default-class-ref、global-results、global-exception-mappings、action
- name:
- action 节点,用于配置处理请求,完成用户请求和action之间的对应关系,归属 package 节点,有如下属性
- name:定义action的名称,也是指定了该action所处理的请求url,支持模式匹配,使用 * 表示一个或者多个任意字符class:指定了该action的处理实现类,默认值 ActionSuppert 类
- method:指定了具体实现类的处理方法,默认值 execute,使用{N} 来获取匹配的值
- result 子节点,对于 action 的返回映射具体表现层页面,其 InnerXML 表示的是具体的页面的URL地址,并支持使用{N} 来获取匹配的值属性如下
- name:action 的返回字符串 success\error\input\none 等
- type:该属性指定结果类型,默认值 dispatcher (JSP整合结果类型)、chain (action 链式处理的结果类型)、redirect(直接跳转到其他URL的结果类型)、redirectAction(直接跳转到其他的Action结果类型)、stream(返回一个InputStream的结果类型),其他的结果类型可以查看 struts-default.xml 配置文件的 result-types 节点
- default-action-ref 节点,用于配置默认的 action ,当用户请求找不到对应的 action 时,系统系统默认的 action 来处理请求,归属 package 节点,属性如下
- name:action 名称
- default-class-ref 节点,用于配置默认的处理类,如果 action 没有配置 class 则会使用配置的默认处理类,归属 package 节点,属性如下
- class:处理类的完整名称
- global-results 节点,用于配置全局结果,全局结果将对所有action生效,归属 package 节点
- result 子节点,对于 action 的返回映射具体表现层页面,其 InnerXML 表示的是具体的页面的URL地址,并支持使用{N} 来获取匹配的值属性如下
- name:action 的返回字符串 success\error\input\none 等
- type:该属性指定结果类型,默认值 dispatcher (JSP整合结果类型)、chain (action 链式处理的结果类型)、redirect(直接跳转到其他URL的结果类型)、redirectAction(直接跳转到其他的Action结果类型)、stream(返回一个InputStream的结果类型),其他的结果类型可以查看 struts-default.xml 配置文件的 result-types 节点
- global-exception-mappings 节点,用于配置全局异常映射配置,归属 package 节点,子节点如下:
- exception-mapping 子节点,用于配置指定的
异常
信息和逻辑视图,归属 global-exception-mappings 或者 action 主要区别是全局还是 action级别,属性如下:- exception:java 的异常类型
- result:逻辑视图的名称,全局的异常映射配置,只能使用 global-results 的全局逻辑视图,action 级别的异常配置可以使用
全局逻辑视图和 action 级别的逻辑视图
- struts.properties 配置说明
- 文件路径位于Web项目的src目录中,运行时必须在Web项目的 WEB-INF/classes 中,在编译过程中 eclipse 会将 src目录中的 struts.xml 复制到 WEB-INF/classes 中
- struts.locale=en_US,指定的Web应用的默认区域,默认值 en_US
- struts.i18n.encoding=UTF-8,指定的Web应用的默认编码集,默认值 UTF-8
- struts.objectFactory = spring,指定 Struts 2默认的ObjectFactory Bean,默认值 spring
- struts.objectFactory.spring.autoWire = name,指定 Spring框架的自动装配模式,默认值 name
- struts.objectFactory.spring.useClassCache = true,该属性指定整合Spring框架时,是否缓存Bean实例,默认值 true
- struts.multipart.parser=jakarta,该属性指定处理multipart/form-data的MIME类型(文件上传)请求的框架,该属性支持cos、pell和jakarta等属性值,即分别对应使用cos的文件上传框架、pell上传及common-fileupload文件上传框架。默认值 jakarta
- struts.multipart.saveDir=,该属性指定上传文件的临时保存路径,该属性的默认值是 javax.servlet.context.tempdir
- struts.multipart.maxSize=2097152,该属性指定Struts 2文件上传中整个请求内容允许的最大字节数
- struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper,指定将HTTP请求映射到指定Action的映射器,Struts 2提供了默认的映射器:org.apache.struts2.dispatcher.mapper.DefaultActionMapper,默认映射器根据请求的前缀与Action的name属性完成映射
- struts.action.extension=action,该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理,如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
- struts.serve.static.browserCache=true,该属性设置浏览器是否缓存静态内容,默认值 true
- struts.devMode = false,该属性设置Struts 2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示,默认值 false
- struts.i18n.reload=false,该属性设置是否每次HTTP请求到达时,系统都重新加载资源文件,默认值 false
- struts.configuration.xml.reload=false,当struts.xml文件改变后,系统是否自动重新加载该文件,默认值 false。
- struts.dispatcher.parametersWorkaround = false,对于某些Java EE服务器,不支持HttpServlet Request调用getParameterMap()方法,默认值 false,对于WebLogic、Orion和OC4J服务器,通常应该设置该属性为true
- struts.ui.theme=xhtml,该属性设置设置struts2标签的主题,默认值 xhtml,有效值 xhtml,html,simple
- Convention 插件,该插件用于支持零配置,插件完全可以抛弃配置信息,Struts2根据约定来自动配置 action 和 result,插件会自动搜索 action、actions、struts、struts2包下面的所有 Java 类,会把所有实现了 com.opensymphony.xwork2.Action 的类和所有以 action 结尾的 Java类,插件的常量配置:
- struts.convention.exclude.packages:指定不扫描哪些包下的 Java 类,位于这些包结构下的 Java 类将不会被自动映射成 action。
- struts.convention.package.locators:设置插件搜索action的根包,对于 action.lee.LoginAction 类,按照约定应该映射到 /lee/login,如果设置该常量为 lee,则该 action 将会映射到 /login,默认值 action,actions,struts,struts2
- struts.convention.result.path:设置插件访问物理视图的路径,默认值 /WEB-INF/content/,定位资源的约定是:actionName+resultCode+suffix,当某个逻辑视图找不到对应的视图的资源时,会继续试图使用:actionName+suffix作为物理视图资源
- struts.convention.classes.reload:设置插件自动重新加载,默认值 false
- struts.convention.default.parent.package:设置插件映射的 action 的所在包的默认父包,默认值 convention-default
- Config-browser插件,该插件可以查看站点的常量配置、Beans、Jars、名字空间和 actions等信息,插件安装后,可以访问站点的 /config-browser/actionNames.action
笔记:Struts 2.3.31 配置说明的更多相关文章
- 读书笔记--Struts 2 in Action 目录
1.Struts 2:现代Web框架 1.1 web应用程序:快速学习 21.1.1 构建web应用程序 21.1.2 基础技术简介 31.1.3 深入研究 61.2 web应用程序框架 71.2.1 ...
- struts2学习笔记--struts.xml配置文件详解
这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...
- struts2配置文件的加载顺序以及 struts.xml package 的配置说明
查看StrutsPrepareAndExecuteFilter:(核心过滤器)两个功能 :预处理 和 执行 在预处理功能中 init 方法中会有加载配置文件的代码: dispatcher.init() ...
- Struts2笔记——struts常用标签
使用struts标签前,首先要配置struts2架构,然后导入标签库,jsp插入如下语句: <%@taglib uri="/struts-tags" prefix=" ...
- Struts2笔记——struts.xml配置详解
访问HelloWorld应用的路径的设置 * 在struts1中,通过<action path=“/primer/helloWorldAction.action”>节点的path属性指定访 ...
- Struts2学习笔记--Struts例子及开发流程
参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门 ...
- SSH(Struts 2.3.31 + Spring 4.1.6 + Hibernate 5.0.12 + Ajax)框架整合实现简单的增删改查(包含分页,Ajax 无刷新验证该用户是否存在)
软件152 余建强 该文将以员工.部门两表带领大家进入SSH的整合教程: 源码下载:http://download.csdn.net/detail/qq_35318576/9877235 SSH 整合 ...
- Struts2 学习笔记——struts.xml文件之Bean的配置
Struts2的大部分核心组件不是以硬编码的形式写在代码中,而是通过自身的IoC容器来管理的. Struts2以可配置的形式来管理核心组件,所以开发者可以很容易的扩展框架的核心组件.当开发者需要扩展或 ...
- Python基础教程【读书笔记】 - 2016/7/31
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章 充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括 ...
随机推荐
- JavaScript预编译原理分析
一直对变量对象,活动对象,预编译,变量提升,执行上下文的时间顺序有着凌乱的认识,但是这些对理解JS语法有着很重要的作用.读了很多人的文章,都没有一个特别清晰的把这些写出来. 今天主要总结一下现阶段自己 ...
- Redis多服务器负载均衡的实现
集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性和可缩放性. 上图是三个主服务 ...
- tensorflow+入门笔记︱基本张量tensor理解与tensorflow运行结构
Gokula Krishnan Santhanam认为,大部分深度学习框架都包含以下五个核心组件: 张量(Tensor) 基于张量的各种操作 计算图(Computation Graph) 自动微分(A ...
- VxWorks镜像简介
VxWorks镜像可分为三类: 可加载型VxWorks镜像:存储在开发机上,运行在板上RAM中 基于ROM的VxWorks镜像:存储在板上ROM,运行在板上RAM中 ROM驻留的VxWor ...
- freemarker基本数据类型
freemarker基本数据类型 1.基本数据类型 (1)字符串 (2)数字 (3)布尔值 (4)日期 2.展示示例 <html> <head> <meta http-e ...
- 项目中的导出(jxl插件)
第一步,获取要导出的参数,为导出做准备 public ModelAndView downloadInfo(final HttpServletRequest request, final HttpSer ...
- freemarker字符串拼接(十二)
freemarker字符串拼接 1.字符串拼接的几种类型 (1)字符串和字符串 (2)字符串和数字 (3)字符串和字符串变量 (4)字符串变量和字符串变量 2.演示示例 <#--定义字符串--& ...
- freemark标签中输出boolean值
private boolean showHeader=true; public boolean getShowHeader(){ return this.showHeader; } public bo ...
- monkey日志分析
Monkey测试的og分析,我们可以通过几个关键词来判断测试是否通过.1)Monkey finished打开LOG,查看log的最下端,是否有类似以下字段:## Network stats: elap ...
- 浅谈JS中的浅拷贝与深拷贝
前端工程师应该都比较熟悉浅拷贝和深拷贝的概念,在日常业务代码的过程中,特别是做数据处理的时候,经常行的会遇到,比如如何在不修改原对象的基础上,重新生成一个一模一样的对象,加以利用,又或是,如何巧妙地运 ...