2010-05-31 14 views
11

ho questo, che sta lavorando:Assegnazione esito di un altro tag JSTL come valore del tag uno JSTL

<c:choose> 
    <c:when test="${sometest}"> 
     Hello, world! 
    </c:when> 
    <c:otherwise> 
     <fmt:message key="${page.title}" /> 
    </c:otherwise> 
</c:choose> 

E voglio cambiarlo a questo:

<c:choose> 
    <c:when test="${sometest}"> 
     <c:set var="somevar" scope="page" value="Hello, world!"/> 
    </c:when> 
    <c:otherwise> 
     <c:set var="somevar" scope="page" value="<fmt:message key="${page.title}">" 
    </c:otherwise> 
</c:choose 

Ma Naturalmente la seguente riga non è corretto:

<c:set var="somevar" scope="page" value="<fmt:message key="${page.title}">" 

Come posso assegnare al somevar variabile la stringa risultante da una chiamata a fmt: message?

risposta

21

Il fmt:message ha un var attributo e che fa in modo efficace ciò che si desidera.

<fmt:message key="${page.title}" var="somevar" /> 

Questo è tutto. Contrassegna il JSTL tlddoc, potrebbe tornare utile.

+0

grazie ancora a te ... È interessante notare che ci sono tre risposte e tre modi diversi per farlo :) – NoozNooz42

+0

Prego. Le altre due risposte sono tecnicamente le stesse e effettivamente effettivamente le stesse. È solo più codice e dimostra solo che la presenza e l'uso dell'attributo 'var' nella maggior parte dei tag' fmt' di JSTL è relativamente sconosciuto;) – BalusC

+0

Perché si chiama 'fmt: message' se tutto ciò che sta facendo è impostare una variabile. Sta formattando o modificando la variabile in qualche modo? –

8

E 'anche possibile specificare il valore da impostare utilizzando il contenuto del corpo, piuttosto che attraverso l'attributo value:

<c:set var="somevar" scope="page"> 
    <fmt:message key="${page.title}"/> 
</c:set> 
5

Dovrete fare con:

<c:set var="title"><fmt:message key="${page.title}"></c:set> 
<c:set var="somevar" scope="page" value="${title}" /> 

Dal momento che non è possibile utilizzare <fmt:message .. /> in quel luogo è la mia esperienza, ha a che fare con la nidificazione come da te suggerito. Oppure vai con @balusc suggerimento ;-)

+0

André van Toly: +1, anche a te ... Sono andato con l'attributo var più breve del tag fmt che BalusC ha sottolineato. – NoozNooz42