0

我有一个 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”中定义的某些属性,我尝试使用messageServiceand I18nUtil.getMessage,但似乎加载了其他属性,但我需要的属性没有。

4

1 回答 1

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

于 2013-04-16T09:09:20.063 回答