2009-04-10 5 views
10

Ich habe eine Ressourcendatei, die einige optionale Schlüssel haben wird. Wenn der optionale Ressourcenschlüssel nicht vorhanden ist, stelle ich stattdessen einen Standardwert ein. Es scheint, dass es keinen einfachen Weg gibt festzustellen, ob ein Schlüssel im Ressourcenbündel vorhanden ist. Das mache ich also, um es zu umgehen.Wie kann ich überprüfen, ob ein Ressourcenbündelschlüssel mit JSTL-Tags nicht existiert?

<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> 

Gibt es einen besseren Weg?

Antwort

6

Sie könnten Ihre eigene JSP-Tag schreiben, dass dies der Fall ist, so kann man dann tun, nur:

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

Die Tag-Implementierung könnte entweder Ihre aktuelle JSP-Syntax, oder eine Java-Klasse sein.

2

Sie können die #{messagesFactory.messages.containsKey('key')} überprüfen.

+1

Dies funktioniert nur in Umgebungen, die EL 2.2 unterstützen (die im April 2009 noch nicht existierten). – BalusC