verschachtelte JSTL-Tags?
lina-
- sonstiges
moin liebes Forum :)
heute hoffe ich mal, dass sich jemand besser mit JSTL auskennt als ich ;)
Ich versuche mit einer Ressource-Datei internationalisierte Ausgaben zu realisieren. Hier mal ein Beispiel:
<c:set var="key" value="involve.status.${order.status}" scope="session"/>
Die Variable "key" enthält nun Strings in der Form "status.1" ... "status.9"
<c:out value="${key}"/>
Kann man auch ganz wunderbar auf normalem Wege ausgeben lassen.
Die Message aus dem Ressourcen-Bundle wird im Normalfall so angesprochen: <fmt:message key="involve.status.1"/> (was auch toll funktioniert - auch eine etwaige Parametrisierung bekomme ich hin)
Weil ich nun aber nicht eine ewiglange <c:choose>-Verästelung haben wollte, dachte ich mir - pack doch einfach den key in die message-Ausgabe. <fmt:message key="<c:out value='${key}'/>"/>
Das funktioniert aber wohl nicht... Zumindest ist der Message-String leer :/ Habe ich hier einen simplen Syntax-Fehler gemacht oder funktioniert mein Vorhaben tatsächlich nicht?
liebe Grüße aus Berlin
lina-
arg...
lasst euch bitte nicht von der Variable verwirren. Hier ist mir ein Fehler unterlaufen... Es muss heissen:
<c:set var="key" value="status.${order.status}" scope="session"/>
(ohne "involve")
Auch die Message wird ohne involve angesprochen ;) <fmt:message key="status.1"/>
liebe Grüße aus Berlin
lina-
Hi lina.
<fmt:message key="<c:out value='${key}'/>"/>
Ich kenne mich mit JSTL zwar nicht besonders aus, aaaaaber... es scheint ja syntaktisch auf XML zu basieren und die Expression Language ist XPath nicht unähnlich. Mir ist kein Möglichkeit bekannt, andere Knoten direkt als Attribut eines anderen Knotens anzugeben, wie du es gemacht hast. Deswegen vermute ich, daß es sich bei JSTL ebenfalls so verhält.