为什么资源包未在java支持的webscript中加载

时间:2013-04-16 08:22:09

标签: java alfresco spring-surf

我有一个webscript定义如下:

  • mywebscript.get.desc.xml
  • mywebscript.get.properties
  • mywebscript.get.json.ftl

这个webscript由这样的java控制器支持:

<bean id="webscript.mypackage.mywebscript.get"
    class="javapackage.MyWebscriptGet" parent="webscript">
    <property name="serviceRegistry" ref="ServiceRegistry" />
    <property name="messageService" ref="messageService" />
</bean>

我无法在java代码中检索“mywebscript.get.properties”中定义的一些属性, 我尝试使用messageServiceI18nUtil.getMessage,但似乎加载了其他属性,但我需要的属性不是。

1 个答案:

答案 0 :(得分:3)

webscriptname.get.properties文件中的资源无法通过消息服务或I18NUtil获得。后两者是全局范围的,而webscript属性仅针对该WebScript。要获得它们,您需要使用WebScript定义。

在Java中,这意味着要做类似的事情:

protected Map<String, Object> executeImpl(WebScriptRequest req,
      Status status, Cache cache) 
{
   Map<String, String> templateVars = req.getServiceMatch().getTemplateVars();
   WebScript webscript = req.getServiceMatch().getWebScript();
   ResourceBundle webscriptRB = webscript.getResources();

   ....
}

WebScriptRequest获取Match,从那里获取WebScript,这将为您提供特定于webscript的属性ResourceBundle