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

时间:2009-10-20 07:00:34

标签: java servlets resources struts

我正在使用Struts开发一个项目,我想知道是否可以在servlet中获取消息资源对象,该servlet包含在同一个项目中。

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

提前致谢。

3 个答案:

答案 0 :(得分:7)

好吧,我终于找到了怎么做。如果有人陷入同样的​​问题,这就是解决方案:在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");

答案 1 :(得分:0)

您也可以这样做:

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

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

答案 2 :(得分:-1)

MessageResources-object使用键Globals.MESSAGES_KEY(“org.apache.struts.action.MESSAGE”)存储在请求范围中。

PropertyMessageResources p = (PropertyMessageResources) request.getAttribute(Globals.MESSAGES_KEY);
String messageValue = null;
if (p != null) {
  // Value for key errors.notempty
  messageValue = p.getMessage("errors.notempty"));
}