6

我有一个自定义的 ResourceBundle 类 org.example.web.UILabels.java,它在运行代码时运行良好,但 Eclipse 中的 JSF 编辑器没有找到它,我假设编辑器/验证器只是按名称查找属性文件。这也意味着我不再能够提前找到非常好的资源。

有什么想法可以纠正吗?

<f:loadBundle basename="org.example.web.UILabels" var="uiLabels"/>
...
<h:outputText value="#{uiLabels.someTextValue}" />
...

我收到错误消息(在问题错误列表中)

在类路径中找不到资源包 org.example.web.UILabels

类型=JSF 问题

带有 WebStandardTools 版本的 Eclipse3.4.0

  • 版本:1.4.0.v200802280619-13-7w311917141518
  • 版本:1.5.1.v200802280619-1407w311917141519
  • 版本:3.0.0.v200806092130-7A-8Y8QqN2lf4VSWrI2ek5Pf4k7s

有关我为什么使用 ResourceBundle 类而不仅仅是属性文件的更多信息,请参阅问题 653682 how-to-override-some-resources-from-a-propertyresourcebundle

谢谢你的时间,大卫沃特斯

4

2 回答 2

3

resource-bundle 元素比 f:loadBundle 操作更有效,因为可以为整个应用程序创建一次包。然而它是一个 JSF 1.2 特性,如果你想与 JSF 1.1 兼容,你必须使用 JSF 1.1。如果您使用 JSF 1.2,这是一个示例:在 faces-config.xml 中定义它,如下所示:

<application>
<resource-bundle>
<base-name>org.example.web.UILabels</basename>
<var>uiLabels</var>
</resource-bundle>
</application>

很抱歉没有回答您的问题,但我没有 Eclipse 的第一手经验。我也首先误解了你的问题,因此我编辑了我的原始答案。

于 2009-03-20T12:16:40.067 回答
2

我遇到了同样的问题,我终于找到了这个解决方案:Eclipse 只搜索默认属性,您的项目必须有一个没有语言环境的属性,例如:

<f:loadBundle basename="i18n.messages" var="msg" />

Eclipse 只会搜索“ i18n/messages.properties”。

于 2013-09-23T09:42:27.440 回答