Ключи messages.properties с несколькими точками не работают - PullRequest
1 голос
/ 21 марта 2019

Я использую пакет messages.properties для своей страницы .xhtml. Я могу получить доступ к ключам и использовать их, если у них есть одно имя. Создание цепочки ключей для одной и той же категории и деление их на . вызывает проблемы.

например. messages.properties:

bookTitle=Title

Я загружаю свой пакет так:

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

и используйте такой пакет:

<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 для генерации геттеров и сеттеров. Боюсь, проблема в том, что первый ключ book извлекается как строка, а затем lombok пытается использовать метод getTitle() для объекта String (книга) и, таким образом, выдает исключение

1 Ответ

1 голос
/ 21 марта 2019

Используйте взамен

#{msg['book.title']}

.Так и должно быть.
Это синтаксис, который, imho, должен использоваться только для ключей, у которых в имени есть точка.

Кстати, Lombok в этом не участвует.

...