2009-04-10 12 views
10

Ho un file di risorse che avrà alcune chiavi opzionali. Se la chiave risorsa opzionale non è presente, ho impostato un valore predefinito. Sembra che non esista un modo semplice per determinare se esiste una chiave nel pacchetto di risorse. Quindi questo è quello che sto facendo per aggirarlo.Come posso verificare se una chiave del bundle di risorse non esiste usando i tag 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> 

C'è un modo migliore?

risposta

6

Si potrebbe scrivere il proprio tag JSP che fa questo, in modo da poter poi basta fare:

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

L'implementazione di tag potrebbe essere sia la sintassi corrente JSP, o di una classe Java.

2

È possibile utilizzare il #{messagesFactory.messages.containsKey('key')} per verificare.

+1

Questo funziona solo in ambienti che supportano EL 2.2 (che non esisteva ancora nell'aprile 2009). – BalusC