一。“struts.action.extension”指定需要Struts 2处理的请求后缀
FilterDispatcher是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户请求。默认情况下,如果用户请求的路径以.action结尾,该请求将被转入Struts 2框架处理,否则该请求将略过Struts 2框架的处理。
默认处理的后缀是可以通过常量”struts.action.extension“进行修改的,如下面配置Struts 2只处理以.do为后缀的请求路径:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.action.extension" value="do"/>
</struts>
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.action.extension" value="do,action"/>
</struts>
二。其他一些基本常量
1。<!-- 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
2。<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false"/>
3。<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true"/>
4。<!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
<constant name="struts.devMode" value="true" />
5。<!-- 默认的视图主题 -->
<constant name="struts.ui.theme" value="simple" />
6。<!– 与spring集成时,指定由spring负责action对象的创建 -->
<constant name="struts.objectFactory" value="spring" />
7。<!–该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 -->
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
8。<!--上传文件的大小限制-->
<constant name="struts.multipart.maxSize" value="10701096"/>
一定要注意参数名的书写格式。像maxSize一定不能写maxsize等。
三。常量定义
下面以对struts.i18n.encoding=UTF-8的配置为例进行说明:
在struts.xml配置形式如下:
<struts>
<constant name="struts.i18n.encoding" value="gbk"></constant>
</struts>
在struts.properties的配置形式如下:
struts.i18n.encoding=UTF-8
在web.xml中配置如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>struts.i18n.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
四。配置文件的优先级
通常,struts2按如下搜索顺序加载struts2常量:
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
如果在多个文件中配置了同一个常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量值.
分享到:
相关推荐
- Struts2动作类中的常量返回值通常包括`success`、`input`、`login`等,但不包括`never`。 ##### 五、以下不属于struts2动作执行的结果类型的是() **答案解析:** - 正确答案为 **A.action**。 - Struts2中的...
STRUTS2 Convention 零配置是Struts2框架中的一种高级特性,旨在...然而,需要注意的是,过度依赖约定可能会导致代码可读性和可维护性下降,因此在实际应用中,需要根据项目需求适度调整配置和约定,以达到最佳平衡。
在Struts2的配置文件`structs.xml`中,你可以添加一个常量配置来指定请求和响应的默认编码格式。例如,如果你的项目中中文字符采用GBK编码,可以在`structs.xml`中添加以下代码: ```xml <constant name="struts....
- **常量配置**:通过在`struts.xml`文件中添加`<constant>`标签来配置常量,例如`struts.devMode`用于开发模式。 - **动态方法调用**:支持动态方法调用,允许通过URL参数指定要执行的方法名称。 - **Action配置**...
在Struts2中实现文件上传,需要创建一个继承自`ActionSupport`的Action类。在这个类中,需要定义用于接收上传文件的私有成员变量,并为它们提供对应的getter和setter方法。例如,在`UploadAction`中,定义了`List...
- **文件上传**:Struts2支持文件上传,需要注意Action中属性字段的写法。 - **多文件上传**:通过配置可以实现多文件上传。 - **自定义拦截器**:可以根据需要扩展或覆盖框架提供的拦截器行为。 - **输入验证**:...
在Struts2框架中,文件上传是一个常见的功能,允许用户通过表单提交文件到服务器进行存储或处理。在实现文件上传时,Struts2需要一个临时目录来保存上传的文件内容,直到它们被完全接收并处理。这个临时目录是通过...
这里将`struts.i18n.encoding`常量设置为`GBK`,这意味着Struts2会使用GBK编码处理所有的国际化字符串。如果需要支持更多的字符,可以考虑使用`UTF-8`。 #### 方法三:修改web.xml配置 对于不同版本的Struts2框架...
在JSP页面中,使用Struts2的标签库中的标签来读取并显示国际化资源文件中的文本。 在编写国际化资源文件时,需要注意编码方式。由于国际化资源文件中可能包含中文或其他非ASCII字符,为了防止页面出现乱码,所有的...
此外,`context.xml`可以设置`reloadable="true"`使服务器在文件更改后自动重启,但需要注意在生产环境中应移除这一设置。同时,可以在`tomcat-users.xml`中添加管理员账户。 在Windows环境下搭建Struts2,需要正确...
首先,在`struts.xml`配置文件中,我们需要声明全局的国际化资源文件。通过设置常量`struts.custom.i18n.resources`的值为`message`,我们指定了基础名称(Basename): ```xml <constant name="struts.custom.i18n...
6. 配置`web.xml`:最后,需要在项目的`web.xml`文件中配置Struts2过滤器。`<filter>`元素定义了Struts2的`StrutsPrepareAndExecuteFilter`,并将其映射到所有URL。 7. 编译和运行:完成上述步骤后,编译项目并启动...
### Struts 2 中的 OGNL 教程 #### 一、OGNL 概述 OGNL(Object-Graph Navigation Language)是一种用于方便地操作对象属性的开源表达式语言。这种语言允许开发者以一种非常直观的方式来访问和修改对象属性,从而...
需要注意的是,`ActionContext`的`getSession()`方法返回的是 Map 类型的对象,而不是直接的 HttpSession 对象。 - **实例代码**:在`LoginAction`类中,可以通过调用`ActionContext.getContext().getSession()`来...
首先,我们需要在Struts2的配置文件(通常为struts.xml)中启用文件上传支持。这可以通过添加以下配置实现: ```xml <constant name="struts.multipart.parser" value="jakarta"/> ``` 这指定Struts2使用Jakarta ...
在Struts2中,OGNL(Object-Graph Navigation Language)扮演着核心角色,是框架内部用于表达和操作对象属性的强大表达式语言。OGNL允许开发者通过简洁的语法来访问和修改对象的属性,甚至可以处理复杂的数据结构。 ...
- Struts2在过去的版本中曾曝出过一些安全漏洞,如CVE-2017-5638(Struts2远程命令执行漏洞),因此使用时必须保持框架的更新,确保使用最新修复的安全版本。 通过这些jar文件,开发者可以构建出一个功能完善的...