Как проверить, существует ли ключ пакета ресурсов с использованием тегов JSTL?

У меня есть файл ресурсов, который будет иметь некоторые дополнительные ключи. Если необязательный ключ ресурса отсутствует, вместо этого я устанавливаю значение по умолчанию. По-видимому, нет простого способа определить, существует ли ключ в наборе ресурсов. Так вот что я делаю, чтобы обойти это.

<fmt:message var="title" key="login.reg.signup.${signupForm.regfrom}.title" />
<c:if test='${fn:startsWith(title, "??")}'>
    <fmt:message var="title" key="login.reg.signup.default.title" /> 
</c:if>

Есть ли лучший способ?

Ответ 1

Вы можете написать свой собственный тег JSP, который сделает это, поэтому вы можете просто сделать:

<my:message var="title" key="${form}.title" default="default.title"/>

Реализация тега может быть либо вашим текущим синтаксисом JSP, либо классом Java.

Ответ 2

Вы можете использовать #{messagesFactory.messages.containsKey('key')} для проверки.