java - ejemplos - Asignar el resultado de otra etiqueta JSTL como valor de una etiqueta JSTL
jtls java (3)
Tengo esto, que funciona:
<c:choose>
<c:when test="${sometest}">
Hello, world!
</c:when>
<c:otherwise>
<fmt:message key="${page.title}" />
</c:otherwise>
</c:choose>
Y quiero cambiarlo a esto:
<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
Pero, por supuesto, la siguiente línea no es correcta:
<c:set var="somevar" scope="page" value="<fmt:message key="${page.title}">"
¿Cómo puedo asignar a la variable somevar la cadena resultante de una llamada a fmt: message?
También es posible especificar el valor para establecer utilizando los contenidos del cuerpo, en lugar de a través del atributo de valor:
<c:set var="somevar" scope="page">
<fmt:message key="${page.title}"/>
</c:set>
Tendrá que ver con:
<c:set var="title"><fmt:message key="${page.title}"></c:set>
<c:set var="somevar" scope="page" value="${title}" />
Como no puedes usar <fmt:message .. />
en ese punto es mi experiencia, tiene que ver con la anidación como sugeriste. O vaya con la sugerencia de @balusc ;-)
El fmt:message
tiene un atributo var
que hace efectivamente lo que quiere.
<fmt:message key="${page.title}" var="somevar" />
Eso es todo. Marcar el tlddoc JSTL , puede ser útil.