java - messages.properties 键具有多个点不起作用

标签 java spring properties-file

我正在为我的 .xhtml 页面使用 messages.properties 包。如果 key 有一个名称,我就可以访问并使用它们。链接同一类别的键并将它们除以 . 会导致问题。

例如 消息.属性:

bookTitle=Title

我像这样加载我的包:

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

并像这样使用 bundle :

<p:column headerText="#{msg.bookTitle}" filterBy="#{row.book.title}" filterMatchMode="contains">
    <h:outputText value="#{row.book.title}" />
</p:column>

这工作得很好。

问题:

使用:

book.title=Title
book.url=URL

我无法使用 #{msg.book.title} 访问值并收到以下错误消息:

headerText="#{msg.book.title}": Property [title] not found on type [java.lang.String]

我正在使用 Lombok 生成 getter 和 setter。我担心问题是第一个键 book 作为字符串检索,然后 lombok 尝试在字符串对象(book)上使用 getTitle() 方法,从而抛出异常(exception)

最佳答案

使用

#{msg['book.title']}

相反。应该是这样。
恕我直言,这种语法只能用于名称中包含点的键。

顺便说一句,Lombok 没有参与其中。

关于java - messages.properties 键具有多个点不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55282178/

相关文章:

java - 简单的迭代器循环给出了意想不到的结果

java - 使用 logback,但不知何故 log4j 被初始化

java - 正确配置 Spring 的安全性 - Java

java - Spring Boot 不提供 jar 内的静态文件

java - ZonedDateTime 在 Spring App 中作为大纪元时间而不是标准字符串返回

java 。移动与子级具有相同标签名称的 xml

java - 属性文件中保存的值是否有长度限制?

java - Spring 占位符不解析 JavaConfig 中的属性

java - 从命令行启动Spring Boot中的多个外部属性文件

java - 如何使用xpath获取以下文本名称?