`
sdustyongz
  • 浏览: 86119 次
  • 性别: 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是一个强大的MVC框架,它通过XML配置文件struts.xml进行系统配置。这个配置文件是Struts2的核心,负责定义Action、拦截器、结果页面等关键元素,以实现请求与业务逻辑的映射。下面我们将深入探讨struts.xml的...

    资源国际化 struts2资源国际化

    对于Struts2项目,资源文件需要放置在`src`目录下,并在`struts.xml`配置文件中声明资源包,例如添加 `&lt;constant name="struts.custom.i18n.resources" value="app"&gt;&lt;/constant&gt;`,这样Struts2就会自动加载资源文件...

    Struts2属性文件详解

    该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开. struts.diSPAtcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet Request...

    简述STRUTS2_Convention零配置

    为了便于查看和调试Struts2应用的配置,Struts2提供了Config Browser插件,它可以显示所有Action、拦截器和其他资源的映射详情。只需将相关插件库添加到项目的`WEB-INF/lib`目录,然后在配置文件中启用插件,即可在...

    Struts2各配置文件详解.doc

    例如,`struts2-convention-plugin`会定义基于约定优于配置的规则,而`struts2-dojo-plugin`则会配置Dojo相关的资源。 3)struts.xml (或struts.properties) 这是应用级别的配置文件,开发者可以在这里定义自己的...

    SSH框架整合中struts2框架所需要的配置文件

    该资源包含SSH框架整合中struts2框架所需要的配置文件:struts.xml

    Struts2知识点

    Struts2 项目的结构主要包括以下几个部分:src 目录、lib 目录、web 目录和资源文件目录。src 目录用于存放 Java 源文件,lib 目录用于存放依赖的 jar 文件,web 目录用于存放 JSP 文件和其他资源文件,资源文件目录...

    Struts配置文件详解

    在Struts框架中,配置文件起着至关重要的作用,它们定义了应用的行为、路由和处理方式。本文将深入探讨Struts配置文件的细节,包括`web.xml`和`struts-config.xml`。 首先,`web.xml`是每个Web应用程序的标准部署...

    Struts2内容整理

    * 在 web.xml 文件中,我们可以配置 Struts2 框架的 Filter,用于将请求路由到 Struts2 框架中。 * 在 struts.xml 文件中,我们可以配置 Struts2 框架的各种常量、Action、结果类型等。 Struts2 的Action Action ...

    MVC架构,struts详细配置,多个struts配置文件,Action的调用方式

    Struts2支持多个配置文件,可以通过`&lt;include&gt;`标签来导入其他配置文件,这样可以使配置更加模块化,方便管理和维护。 **Action的调用方式**: Struts2支持基于注解的Action配置,可以直接在Action方法上使用注解...

    struts2配置静态资源代码详解

    在Struts2中,配置静态资源是为了确保像CSS、JavaScript、图片等非Action处理的资源能够正常被浏览器访问。这些资源通常不涉及业务逻辑,而是用于页面展示和交互。配置静态资源对于优化应用性能和提升用户体验至关...

    Struts 2中实现文件下载

    在Struts 2中,文件下载功能是通过Action和Result类型的组合实现的,允许用户从服务器端下载文件到客户端。以下将详细介绍如何在Struts 2中实现文件下载,特别是处理中文文件名的问题。 首先,你需要创建一个Action...

    Struts2.5.2的配置及问题解决

    配置文件中的版本号(如`struts-2.5.2`)应与实际使用的Struts版本保持一致,以确保正确解析和执行。 在配置过程中,可能会遇到各种问题。例如,日志配置不完整可能导致Tomcat无法启动或运行错误。在这种情况下,...

    Struts中的国际化(资源文件的应用)

    在Struts的配置文件(如`struts-config.xml`)中,你需要声明资源文件的位置,通常使用`&lt;message-resources&gt;`标签。例如: ```xml &lt;!-- 资源文件 --&gt; &lt;message-resources parameter="struts.ApplicationResources" ...

    struts-config.xml配置文件详解

    Struts-config.xml 文件中还可以配置其他信息,如控制器、消息资源、全球前进等。 例如: ```xml 我的消息"/&gt; ``` 需要注意的是,Struts-config.xml 文件中的元素必须按照特定的顺序出现,否则可能...

    Struts2入门与配置

    Struts2支持多语言环境,通过资源文件(如.properties或.xml)管理不同语言的文本,可以根据用户的浏览器设置自动选择相应语言的文本。 **Struts2标签库** Struts2提供了一套丰富的标签库,如s:form、s:textfield...

    struts核心配置资源文件

    Struts应用的配置 多应用模块的配置 Struts配置文件 多应用模块的划分有助于应用的并行开发,提高效率。

    struts2官方例子8-资源配置文件的使用(包括国际化)

    struts2官方例子8-资源配置文件的使用(包括国际化),主要讲述struts资源文件的使用,以及国际化i18n的使用

    struts2实现文件下载及中文名字转换解决方案

    在本文中,我们将深入探讨如何使用Struts2框架实现文件下载功能,尤其是处理包含中文名字的附件。Struts2是一个流行的Java Web开发框架,它提供了丰富的功能,包括处理HTTP请求、表单提交以及数据绑定等。对于文件...

    struts.xml文件详解.doc

    Struts.xml文件是Apache Struts 2框架的核心配置文件,它用于定义应用程序的行为、Action映射、结果页面、拦截器等关键组件。在深入讲解struts.xml之前,我们先来了解与之相关的struts.properties文件。 struts....

Global site tag (gtag.js) - Google Analytics