Como posso verificar se uma chave pacote de recursos não existe usando marcas JSTL?
-
09-09-2019 - |
Pergunta
Eu tenho um arquivo de recurso que terá algumas chaves opcionais. Se a chave de recurso opcional não está presente, eu definir um padrão em vez. Parece que não há nenhuma maneira fácil de determinar se existe uma chave no pacote de recursos. Então é isso que eu estou fazendo para contorná-la.
<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>
Existe uma maneira melhor?
Solução
Você pode escrever seu próprio tag JSP que faz isso, então você pode em seguida, basta fazer:
<my:message var="title" key="${form}.title" default="default.title"/>
A implementação tag poderia ser seu atual sintaxe JSP, ou uma classe Java.
Outras dicas
Você pode usar o #{messagesFactory.messages.containsKey('key')}
para verificar.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow