2

使用 Struts 2.3 框架有几种方法来处理资源包。这包括在 View 类中使用某些 UI 标记或getText()在 Action 类中使用方法。

但是,在 Java 类或除 View 和 Action 之外的任何其他类中没有直接的机制来访问此资源包。

我找到了两种在 java 类中访问它的方法,但是,它们无法完全取代旧MessageResources的 Struts 1.2 框架。

以下是各有缺点的两种方式

  1. 使用包ResourceBundle的类java.util

    Locale locale = (Locale)request.getSession().getAttribute(ConstantsFnl.LOCALE_KEY);
    ResourceBundle rb = ResourceBundle.getBundle(bundle,locale);
    message = rb.getString(key);
    

    这种方法的缺点是您不能传递可以在消息文本中替换的参数数组。此功能在 Struts 1.2 中具有MessageReosurces.

  2. 使用DefaultTextProviderStruts 2.3 框架。

    DefaultTextProvider dtp = new DefaultTextProvider();
    return dtp.getText(key, (String[])params);
    

尽管这种方法为您提供了一种在消息文本中传递要替换的参数数组的方法,但它并没有为您提供指定区域设置或指定要搜索的包的机制。同样,此功能存在于 Struts 1.2 中MessageResources班级。

寻找最佳方法。对此的任何帮助都会很棒。

4

1 回答 1

2

您可以使用以下方法:

com.opensymphony.xwork2.util.LocalizedTextUtil
于 2013-05-28T06:42:47.140 回答