Java 如何在servlet中获取消息资源对象?

Java 如何在servlet中获取消息资源对象?,java,servlets,resources,struts,Java,Servlets,Resources,Struts,我正在用Struts开发一个项目,我想知道是否有可能在同一个项目中包含的servlet中获取message resources对象 使用方法getResources(HTTPServletRequest)无法获取该对象,因为servlet不扩展动作类。有办法吗 提前感谢。MessageResources对象存储在请求范围中,键为Globals.MESSAGES\u(“org.apache.struts.action.MESSAGE”) 嗯,我终于找到了方法。如果有人遇到同样的问题,这里有一个解决

我正在用Struts开发一个项目,我想知道是否有可能在同一个项目中包含的servlet中获取message resources对象

使用方法
getResources(HTTPServletRequest)
无法获取该对象,因为servlet不扩展动作类。有办法吗


提前感谢。

MessageResources对象存储在请求范围中,键为Globals.MESSAGES\u(“org.apache.struts.action.MESSAGE”)


嗯,我终于找到了方法。如果有人遇到同样的问题,这里有一个解决方案:在servlet中使用java.util.ResourceBundle类

您只需创建ResourceBundle,传递属性类的名称和要使用的区域设置,如下所示:

ResourceBundle rb = new ResourceBundle("com.foo.package.theClass", myLocale);
//And then get the messages from the rb object
rb.getMessage("myPropertiesKey");

您也可以这样做:

ActionContext.getContext().getActionInvocation().getAction() //the action context is threadlocal

操作完成后,您可以使用TextProvider界面获取操作所需的任何资源。

谢谢您的帮助,但我无法让它工作。request.getAttribute(Globals.MESSAGES_键);返回null。我忘了说更多关于它的信息。我使用的是Struts 1.3.10库,servlet在web.xml中定义,如下所示:PvsInterface PvsInterface com.ford.ads.rapid.pvsw.pvs.PvsInterface 1我是否遗漏了其他内容?提前感谢您如何配置您的邮件资源?struts-config.xml是否包含以下内容:如果包含,则消息资源属性文件是否位于类路径中?谢谢回答。是的,我在struts-config.xml文件中配置了消息资源。资源文件是代码所在的位置,在一个名为resources的包中。ResourceBundle是抽象的(至少在Java 6中是这样)。你需要调用ResourceBundle.getBundle(“com.foo.package.theClass”,myLocale),而不是实例化这个类。必须这样做,谢谢你指出这一点!!类
java.util.ResourceBundle
中没有方法
getMessage()
,但是有方法
getString()
。非常感谢你的建议,它真的很有效。
ActionContext.getContext().getActionInvocation().getAction() //the action context is threadlocal