Struts2 访问struts操作类外部的资源束

Struts2 访问struts操作类外部的资源束,struts2,struts-1,resourcebundle,Struts2,Struts 1,Resourcebundle,有几种方法可以使用Struts 2.3框架处理资源包。这包括在视图类中使用某些UI标记,或在操作类中使用getText()方法 但是,除了View和Action之外,java类或任何其他类中都没有直接的机制来访问这个资源包 我在java类中找到了两种访问它的方法,但是,它们无法完全取代Struts 1.2框架中旧的MessageResources DefaultTextProvider dtp = new DefaultTextProvider(); return dtp.getText(key

有几种方法可以使用Struts 2.3框架处理资源包。这包括在视图类中使用某些UI标记,或在操作类中使用
getText()
方法

但是,除了View和Action之外,java类或任何其他类中都没有直接的机制来访问这个资源包

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

DefaultTextProvider dtp = new DefaultTextProvider();
return dtp.getText(key, (String[])params);
以下是两种方法,每种方法都有缺点

  • 使用
    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中使用了
    MessageReSurces
    提供了此功能

  • 使用Struts 2.3框架的
    DefaultTextProvider

    DefaultTextProvider dtp = new DefaultTextProvider();
    return dtp.getText(key, (String[])params);
    
  • 尽管这种方法为您提供了一种在消息文本中传递要替换的参数数组的方法,但它并没有为您提供一种机制来指定区域设置或指定要搜索的包。同样,Struts 1.2中的
    MessageResources
    类中提供了此功能


    寻找一个最佳的方法。这方面的任何帮助都会很好

    您可以使用下列方法:

    com.opensymphony.xwork2.util.LocalizedTextUtil
    

    @kozla13:具体的例子是什么?@AleksandrM如何使用LocalizedTextUtil?@kozla13:您需要什么javadoc或其他东西。api/javadoc的更新url: