2.struts.xml文件配置
只挑选几个重要的常量说明:
(1) <constant name="struts.locale" value="zh_CN"/>
<constant name="struts.i18n.encoding" value="UTF-8"/>
struts2.x[flash=200,200][/flash] 现在只需要一个struts.xml文件就可以了。以前配struts.locale=zh_CN,struts.i18n.encoding=UTF-8,应用起动时会报一个警告,说没有配置locale,必须要在struts.properties里面配置才不会报错,现在这个问题已经解决了,所有配置都可以在xml文件中指定了。
(2) <constant name="struts.action.extension" value="action,do,,"/>
扩展名可以指定为空。这样地址栏比较好看。但也会有个问题,就是一些其他servlet映射,如cxf,我们会映射地址为/services/*,现在这个地址也变成struts2控制范围的地址了,如果按默认的配置会报找不到action的错误。解决办法是修改mapper类。这在以后文章中会提到。
(3) <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.enable.SlashesInActionNames" value="true"/>
开启动态方法。要实现零配置,就是需要动态方法调用。开启action名称可以有 “/”,一个请求地址有多个“/”,struts2就不会再使用类路径扫描的命名空间,只会使用配置的名称。所以既想action名称里使用“/”,又想用struts2默认搜索的命名空间,只能自己修改一下convention插件的实现类了。
(4) <constant name="struts.ui.theme" value="simple"/>
不用dojo的及struts2复杂标签样式的就把主题设置为simple,这样可以不加载多余的模板。
(5) <constant name="struts.devMode" value="true"/>
<constant name="struts.i18n.reload" value="true"/>
<constant name="struts.configuration.xml.reload" value="true"/>
<constant name="struts.convention.classes.reload" value="true" />
开启开发者模式,在平时开发时修改action的annotation配置可以不重启,但是修改struts.xml文件还是要重启。修改类的具体内容,debug模式下可以不重启,或是使用javarebel,这个不在讨论范围。
(6) <constant name="struts.convention.result.path" value="/WEB-INF/pages/"/>
指定结果页面路径。 convention插件会自动在此路径中寻找文件。放到WEB-INF的目的的保护文件资源,只能通过程序内部跳转才能访问,我们的权限拦截器或其他权限处理只要加到action上就可以了。
(7) <constant name="struts.convention.action.suffix" value="Action"/>
<constant name="struts.convention.action.name.lowercase" value="true"/>
<constant name="struts.convention.action.name.separator" value="_"/>
一个action名字的获取。比如为HelloWorldAction。按照配置,actionName为hello_world。
(8)<constant name="struts.convention.action.disableScanning" value="false"/>
是否不扫描类。一定要设为false,否则convention插件不起作用,零配置也没有意义。
(9)<constant name="struts.convention.default.parent.package" value="default"/>
设置默认的父包,一般我们都设置一个default包继承自struts-default。大部分类再继承default。如果有特殊的类需要特殊的包,只能在action中再指定父包了。
(10) <constant name="struts.convention.package.locators" value="action"/>
<constant name="struts.convention.package.locators.disable" value="false"/>
<constant name="struts.convention.package.locators.basePackage" value=""/>
确定搜索包的路径。只要是结尾为action的包都要搜索。basePackage按照默认不用配置,如果配置,只会找以此配置开头的包。locators及locators.basePackage都是一组以逗号分割的字符串。
(11) <constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate."/>
排除哪些包不搜索。按默认配置即可。逗号分割字符串。
(12) <constant name="struts.convention.action.includeJars" value="" />
包括哪些jar包中的action。逗号分割字符串。
(13)<constant name="struts.convention.relative.result.types" value="dispatcher,freemarker,velocity"/>
默认返回的结果类型搜索。按顺序先找相关的dispatcher的jsp文件是否存在。然后再找freemarker,再找velocity。
(14)<constant name="struts.convention.result.flatLayout" value="true"/>
如果此值设为true,如果一个action的命名空间为/login,名称为HelloWorldAction。result返回值是success,默认会找到/WEB-INF/pages/login/hello_world.jsp(如果有hello_world_success.jsp就找这个文件,连接符“_”是在<constant name="struts.convention.action.name.separator" value="_"/>中配置的)。如果有一个action的result返回值是“error”,就会找/WEB-INF/pages /login/hello_world_error.jsp。
如果此值设为false,如果一个action的命名空间为/login,名称为HelloWorldAction。result返回值是success,默认会找到/WEB- INF/pages/login/hello_world/index.jsp(如果有success.jsp就找这个文件)。如果有一个action的result返回值是“error”,就会找/WEB-INF/pages /login/hello_world/error.jsp。
(15) <constant name="struts.convention.action.mapAllMatches" value="false"/>
<constant name="struts.convention.action.checkImplementsAction" value="false"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
<constant name="struts.convention.redirect.to.slash" value="true"/>
这几个配置没有太多的实际意义,本着最小检查的原则就可以。
(16)默认拦截器配置,已经简化了许多,一般不需要chain和 fileupload。modelDriven也没什么用,如果我们要使用restfull插件会有用。其实最简单只要一个params就可以了。我加入 exception是为了开发时的异常。servletConfig是为了包装一下request,reponse等对象,staticParams是为了可以配置${}形式参数。actionMappingParams是struts2.1新增的,我初步认为是可以在action配置中传参数,这个还有些疑问。
分享到:
相关推荐
### Struts2的常量配置解析 #### 引言 在Java Web开发中,Struts2框架因其灵活性和强大的功能而被广泛采用。Struts2的配置灵活性体现在其丰富的常量配置选项上,这些配置项可以调整框架的行为,优化应用程序性能,...
本文将深入探讨Struts2中的常量配置,这些常量在框架的运行时扮演着至关重要的角色。 首先,我们要了解Struts2配置文件的层次结构。主要有以下几个核心配置文件: 1. **struts-default.xml**:这是Struts2核心库中...
### Struts2常量设置详解 #### 一、概述 在Struts2框架中,配置文件`struts.properties`用于定义一系列重要的系统级配置项,这些配置项对框架的行为模式和功能实现起着至关重要的作用。本文将详细介绍该文件中几个...
Struts2 框架中有许多重要的常量,它们负责控制着 Struts2 的行为和配置。下面我们将对 Struts2 中的一些常量进行详细的解释和分析。 1. struts.configuration struts.configuration 属性指定加载 Struts 2 配置...
本文将深入探讨Struts2中的常量配置,包括基本的XML配置以及零配置的Convention模式下的常量设定。 首先,让我们了解Struts2框架中的常量配置。这些常量定义在`struts-default.xml`和`struts-plugin.xml`等配置文件...
在Struts2中,常量配置是非常关键的一环,它们控制着框架的行为和性能,通过在struts.xml文件中定义,可以灵活地调整框架的默认行为以适应不同的应用需求。 ### Struts2常量的具体用法实例 #### 1. struts.i18n....
在深入探讨Struts2常量配置的细节之前,我们首先简要回顾一下Struts2框架。Struts2是一个基于MVC设计模式的Java Web应用程序框架,它提供了丰富的功能,如表单验证、国际化支持、拦截器等,使得开发人员能够构建高效...
5. **常量配置** (`constant`): - 通过 `<constant name="key" value="value"/>` 来定义全局的配置项。 - 这些配置项可以在Struts2的其他配置文件中使用,如 `struts.properties`。 #### 三、struts.properties ...
#### Struts2常量配置 Struts2框架提供了大量的常量供开发者配置,这些常量可以控制框架的各个方面,例如: - **struts.devMode**: 开发模式开关,开启后会提供更多调试信息。 - **struts.action.extension**: 指定...
在这个“struts2的配置信息”主题中,我们将深入探讨Struts2的核心配置及其lib资源。 首先,让我们关注`lib`目录。这个目录包含了Struts2运行所需的库文件,这些文件是JAR(Java Archive)格式,它们提供了框架的...
### Struts2配置文件介绍 #### 一、Struts2的核心配置文件 在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`...
1. **Struts2常量配置**: - `struts.devMode`:这是一个用于设定开发模式的常量,设置为`true`时,Struts2会在开发阶段提供更多的错误信息和调试帮助,避免重启服务器。 - `struts.i18n.encoding`:定义了Struts2...
#### 二、Struts2常量配置项详解 ##### 1. struts.i18n.encoding **作用:** 指定Web应用的默认编码集,等同于调用`HttpServletRequest`的`setCharacterEncoding`方法。 **配置示例:** ```xml <constant name="...
STRUTS2 Convention 零配置是Struts2框架中的一种高级特性,旨在简化应用程序的配置,让开发者能够更快地构建MVC应用。从Struts2.1版本开始,推荐使用Convention插件替代Codebehind插件,因为它更加自动化,几乎无需...
以下是关于Struts2属性配置的详细说明: 1. **struts.xml配置**: Struts2的核心配置文件是`struts.xml`,通常位于类路径(classes根目录下)。这个文件包含了Action配置、拦截器堆栈、常量定义等关键信息。例如,...
- 自定义异常处理器:通过实现`ExceptionMappingInterceptor`接口,或使用`struts.action.EXCEPTION`常量配置。 10. **国际化** - 使用`ResourceBundle`和`struts.i18n.locale`常量实现多语言支持。 11. **Ajax...
3. **struts.properties**:这是一个属性文件,通常位于项目的类路径根目录下,用于配置全局属性,比如常量定义、错误页面等。 4. **struts.xml**:这是用户自定义的主配置文件,用于定义Action、结果类型、拦截器...