2009-04-10 10 views
10

Tengo un archivo de recursos que tendrá algunas claves opcionales. Si la clave de recurso opcional no está presente, configuro un valor predeterminado en su lugar. Parece que no hay una manera fácil de determinar si existe una clave en el paquete de recursos. Entonces esto es lo que estoy haciendo para evitarlo.¿Cómo puedo verificar si una clave del paquete de recursos no existe utilizando etiquetas 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> 

¿Hay una manera mejor?

Respuesta

6

Se podría escribir su propia etiqueta de JSP que hace esto, por lo que puede luego simplemente hacer:

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

La implementación de la etiqueta o bien podría ser su sintaxis JSP actual, o una clase de Java.

2

Puede usar el #{messagesFactory.messages.containsKey('key')} para verificar.

+1

Esto solo funciona en entornos compatibles con EL 2.2 (que no existía en abril de 2009 todavía). – BalusC

Cuestiones relacionadas