`
sdustyongz
  • 浏览: 84836 次
  • 性别: 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属性文件详解

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

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

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

    struts核心配置资源文件

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

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

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

    struts2配置文件

    用于配置struct2文件,比网上的文件更加准确,更要有用,资源少

    浪曦Struts2系列视频教程

    教程名称:浪曦Struts2系列视频教程课程目录:【】1 Struts2入门与配置【】10 Struts2的核心 拦截器【】11 Struts2的核心 拦截器续【】12 Struts2的文件上传和下载【】13 Struts2的文件上传和下载续【】14 Struts2的...

    Struts2-rest插件(有注释)

    由于 Struts 2 的 Convention 插件的主要特点是“约定优于配置”,当我们已经习惯了 Struts 2 的基本开发方法之后,如果希望改为使用 Convention 插件也非常容易,我们只要放弃 Stuts 2.1 应用原有的配置文件,改为...

    Struts1配置

    Struts1配置文件各标签属性的详细解释与用法,包括struts1的工作流程

    Struts2入门教程(全新完整版)

    2.配置package的资源文件 48 3.app级别的资源文件 48 4.使用资源文件的原理 49 5.选择使用资源文件 49 八、验证机制 50 1.基于手工编码的校验 50 简析校验流程: 53 2.基于XML配置形式的校验 53 九、文件上传下载...

    struts2 详解文档

    配置国际化全局资源文件、输出国际化信息 输出带有占位符的国际化信息 配置包范围国际化资源文件 配置Action范围国际化资源文件 ognl表达式 Struts 2常用标签解说 使用标签防止表单重复提交 Struts 2+...

    struts2.0+hibernate+spring文件配置

    本资源是实现strust2.0+hibernate+spring中所有的文件的配置,包括struts2.0中action的配置,hibernate中hibernate.cfg.xml的配置,spring中beans的配置……

    struts2配置2.5版

    每次HTTP请求系统都重新加载资源文件,有助于开发 5.struts配置文件改动后,是否重新加载 &lt;constant name="struts.configuration.xml.reload" value="true" /&gt; 6.查看源码:Build path 后的类库中,奶瓶图标...

    Struts2 in action中文版

    第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...

    STRUTS2国际化的问题

    struts国际化的描述,其中包括在配置文件中配置实现,以及在后台中或者是前台中处理实现国际化的过程。

    spring,hirbernate,struts2,框架整合资源/SSH整合全套案例

    spring,hirbernate,struts2,框架整合资源,包括配置文件的配置方法

    Struts2 学习笔记

    十三、 Struts2配置文件模块化包含(include) 17 十四、 默认的Action 18 十五、 Action总结 18 02 Struts2-Result 19 一、 Result类型 (type) 19 二、 全局结果集(Globle Result) 20 三、 动态的结果集(dynamic ...

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    Struts2从一个带参数action跳转到另一个action

    资源中示例了一个struts2的配置文件中配置的action的result结果为另外一个action的配置,该跳转的过程中是带所有参赛调整的,在另外一个action中可以接受到当前action的所有参数,此配置文件是我日常开发中的经验...

    struts2.0资源包

    本资源提供了struts2.0开发所需要的jar包,还有web.xml文件的配置……

Global site tag (gtag.js) - Google Analytics