我正在使用Struts开发一个项目,我想知道是否可以在servlet中获取消息资源对象,该servlet包含在同一个项目中。
使用方法getResources(HTTPServletRequest)
无法获取该对象,因为servlet不会扩展Action类。有办法吗?
提前致谢。
答案 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"));
}