`
sdustyongz
  • 浏览: 89567 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Struts2资源文件的配置

阅读更多
转载自:http://blog.csdn.net/Mount_here/archive/2009/02/03/3860700.aspx

最近在玩Struts2时,发现Struts2的资源文件配置的几个有趣的问题,特地跑来给大家分享。

据Struts2的文档,当由action加载页面时资源文件的的搜索顺序为:

ActionClass.properties
Interface.properties (every interface and sub-interface)
BaseClass.properties (all the way to Object.properties)
ModelDriven's model (if implements ModelDriven), for the model object repeat from 1
package.properties (of the directory where class is located and every parent directory all the way to the root directory)
search up the i18n message key hierarchy itself
global resource properties
在了解这些后,我在struts.xml中如下配置:

<?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" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
   
    <package name="practice" extends="struts-default">
       <action name="index" class="com.opensymphony.xwork2.ActionSupport">
         <result>index.jsp</result>
       </action>
    </package>
</struts>

并把ActionSupport.properties放在相应包下面。因为所有的<action>若不显示配置class, 默认的class 为ActionSupport,因此我用ActionSupport.properties,应该没问题吧。大家猜怎么着?

不行!

我怎么搞都不成,于是我要把它命名为package.properties,应为根据资源文件的搜索顺序,若找不到相应action的资源文件,应该找包级别的资源文件。结果呢?

还是不行!

于是我又配置了struts.properties文件,指定全局资源:struts.custom.i18n.resources=globalMessages

结果可以了!

难道首页的多语言必须配置在全局资源文件中吗?放在action级别和包级别都不起作用,那该如何是好呢?

我想到的解决办法是,写一个action,如:BaseAction继承ActionSupport,抽象出一些公用的东西来,或干脆为空,

然后让我们的其它action都继承BaseAction,这样的话在struts.xml中如下配置:

<struts>

    <constant name="struts.action.extension" value="do" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
   
    <package name="practice" extends="struts-default">
       <action name="index" class="wbw.practice.actions.BaseAction">
         <result>index.jsp</result>
       </action>
    </package>
</struts>

然后创建BaseAction.properties文件放在相应包下面就可以了;不用BaseAction.proerties,用package.properties也Ok!

据此应用struts2的资源文件应注意以下两点:

1. 只有通过自定义的Action到达的页面,资源文件才起作用。也就是说:

    <action name="index" class="com.opensymphony.xwork2.ActionSupport">
         <result>index.jsp</result>
       </action>

     和

    <action name="index">

             <result>index.jsp</result>
       </action>

    是一样的,资源文件不会被应用的!

2. struts2文档中的资源文件搜索顺序的第一条:ActionClass.proerpties中的ActionClass必须是自己写的       ActionClass.
分享到:
评论
1 楼 tinguo002 2010-06-22  
在这里缓缓走过,很为楼主钻研精神感动,也感谢楼主分享。

相关推荐

    ·Struts2配置文件介绍 超级详细

    ### Struts2配置文件介绍 #### 一、Struts2的核心配置文件 在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`...

    struts2配置文件

    3. 避免在Action中硬编码视图路径,推荐使用常量或资源文件。 4. 合理配置拦截器,确保性能和安全性。 **六、web目录结构** 在Web应用中,`WEB-INF`目录下通常包含`struts.xml`等配置文件。部署时,服务器会根据`...

    struts2 配置文件

    - `&lt;message-resources&gt;`: 国际化资源文件配置。 - `&lt;plug-in&gt;`: 插件配置。 ##### 2. 关键配置项 - **`&lt;form-bean&gt;`**: - 定义表单Bean的属性和验证规则。 - **`&lt;action-mapping&gt;`**: - 映射Action的执行逻辑...

    struts2实现文件下载功能

    在Struts2的配置文件(struts.xml)中添加相应的配置。 3. **设置Content-Type和Content-Disposition**: - 在Action类中,使用`ValueStack`或`ActionContext`来设置HTTP响应的`Content-Type`和`Content-...

    struts配置的文件 连接池 mysql等配置文件

    10. **国际化支持**:Struts2支持多语言,可以通过配置资源文件来实现。在`struts.properties`或`struts.xml`中指定资源文件的路径。 以上就是关于Struts2配置文件的详细讲解,包括核心配置文件`struts.xml`的使用...

    struts2配置文件以及代码示例

    在Struts2中,配置文件扮演着至关重要的角色,它定义了应用的行为、组件之间的交互逻辑以及各种资源的映射关系。 #### 二、Struts2配置文件详解 **配置文件格式:** Struts2配置文件通常以`struts.xml`命名,采用...

    struts2 jar包及配置文件

    本资源包含Struts2的核心jar包和相关的配置文件,对于学习和开发基于Struts2的应用来说是非常宝贵的。 首先,我们来了解一下Struts2的核心jar包。这些jar文件通常包括以下组件: 1. **struts2-core.jar**:这是...

    struts2 资源配置

    #### 三、Struts2资源文件的配置 在`struts.xml`配置文件中,可以指定使用的资源文件名称: ```xml &lt;constant name="struts.custom.i18n.resources" value="baseName"/&gt; ``` 或者在`struts.properties`文件中进行...

    Struts2属性文件详解

    指定了Struts 2应用所需的国际化资源文件,如果有多个国际化资源文件,多个文件名间以英文逗号`,`分隔。 #### struts.diSPAtcher.parametersWorkaround 针对某些Java EE服务器不支持`HttpServletRequest`调用`...

    Struts框架中struts-config.xml文件配置小结

    ### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...

    Struts2配置详解

    在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用开发框架。它通过一系列的配置文件来...

    关于struts2的一些配置

    在深入探讨《关于struts2的一些配置》这篇文章之前,我们首先需要理解Struts2框架的基本概念及其在Java Web开发中的重要性。Struts2是一个基于MVC(Model-View-Controller)模式的开源Web应用框架,它简化了Java Web...

    struts2核心文件

    10. **国际化与本地化**: Struts2提供了对多语言的支持,可以通过资源文件轻松实现界面的国际化。 使用Struts2核心jar包时,需要正确配置web.xml以启用Struts2框架,并在项目中引入相应的依赖。开发过程中,还需要...

    struts2 为应用指定多个配置文件.rar

    "struts2 为应用指定多个配置文件"的主题意味着我们将探讨如何在Struts2框架中使用多个配置文件来增强灵活性和模块化。 首先,Struts2的默认配置文件是`struts-default.xml`和`struts-plugin.xml`,这两个文件位于`...

    struts2参数配置

    **资源文件配置** - **MessageResources**:Struts2中用于管理国际化消息的接口。 - **MessageResourcesFactory**:负责创建MessageResources实例的工厂类。 - 默认情况下,Struts2使用`org.apache.struts.util....

    struts2的资源配置

    Struts2是一个强大的MVC框架,它通过XML配置文件struts.xml进行系统配置。这个配置文件是Struts2的核心,负责定义Action、拦截器、结果页面等关键元素,以实现请求与业务逻辑的映射。下面我们将深入探讨struts.xml的...

    一个简单的struts2的手动配置

    我们可以创建资源文件,如`message.properties`和`message_zh_CN.properties`,然后在Action中使用`getText`方法获取对应的语言消息。 最后,Struts2的插件系统非常强大,例如JSON插件可以让我们轻松地将Action结果...

    struts2 配置文件宝典

    《Struts2配置文件宝典》一文详细阐述了Struts2框架中配置文件的核心概念与实践技巧,尤其聚焦于如何高效地管理拦截器、包(package)以及Action的配置,为开发者提供了一套全面而深入的理解框架配置的指南。...

    Struts2文件流方式导出下载excel、Txt、image图片

    2. **配置struts.xml**:在Struts2的配置文件中,我们需要为这个Action添加相应的配置,指定返回的`StreamingResult`结果类型和对应的视图。 ```xml &lt;param name="contentType"&gt;application/octet-stream ...

Global site tag (gtag.js) - Google Analytics