Java 该类的Messages文件夹不是来自';第'页;和';组件';包装

Java 该类的Messages文件夹不是来自';第'页;和';组件';包装,java,properties,tapestry,Java,Properties,Tapestry,在Tapestry中,带有本地化消息的.properties文件位于页面、组件和应用程序消息目录中。我拥有的类不是来自页面和组件包,我希望以通常的方式在其中插入消息: @Inject private Messages messages; 以后使用获取本地化消息的步骤 String msg = messages.get("message-key"); 我试图将.properties文件定位到相应的文件夹(例如,对于classsrc/main/java/nonPageOrComponentPac

在Tapestry中,带有本地化消息的
.properties
文件位于
页面
组件
和应用程序消息目录中。我拥有的类不是来自
页面
组件
包,我希望以通常的方式在其中插入消息:

@Inject
private Messages messages;
以后使用获取本地化消息的步骤

String msg = messages.get("message-key");
我试图将
.properties
文件定位到相应的文件夹(例如,对于class
src/main/java/nonPageOrComponentPackage/Foo.java
scr/main/resources/nonPageOrComponentPackage/Foo.properties
),就像对
page
component
类所做的那样,但它不起作用

是否需要在某处指定此
.properties
文件的路径?我试着用方法做这件事

public void contributeValidationMessagesSource(@NotNull Configuration<String> configuration) {
  configuration.add("/scr/main/resources/nonPageOrComponentPackage/Foo.properties");
}
public void contributeValidationMessagesSource(@NotNull配置){
添加(“/scr/main/resources/nonPageOrComponentPackage/Foo.properties”);
}
AppModule
,但它也不起作用


提前谢谢

消息检索机制仅设计用于页面/组件内部。您有应用程序消息目录,它可以被一些基本页/组件目录覆盖,然后被结束页/组件目录覆盖。所有这些仅适用于页面和组件

如果类不是页面或组件,则可以使用
@inject
注释仅插入应用程序消息目录。您还可以向
ComponentMessageSource
服务添加一些附加的消息包到应用程序目录中

@Contribute(ComponentMessagesSource.class)
public void contributeComponentMessagesSource(@Value("context:WEB-INF/mail") Resource mailMessages, OrderedConfiguration<Resource> configuration) {
  configuration.add("mail", mailMessages);
}
messages = MessagesImpl.forClass(Foo.class);