Ответ 1
fmt:message
имеет атрибут var
, который эффективно выполняет то, что вы хотите.
<fmt:message key="${page.title}" var="somevar" />
Это все. Закладка JSTL tlddoc, это может пригодиться.
У меня есть это, которое работает:
<c:choose>
<c:when test="${sometest}">
Hello, world!
</c:when>
<c:otherwise>
<fmt:message key="${page.title}" />
</c:otherwise>
</c:choose>
И я хочу изменить его на это:
<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
Но, конечно, следующая строка неверна:
<c:set var="somevar" scope="page" value="<fmt:message key="${page.title}">"
Как я могу присвоить переменной somevar строку, вызванную вызовом fmt: message?
fmt:message
имеет атрибут var
, который эффективно выполняет то, что вы хотите.
<fmt:message key="${page.title}" var="somevar" />
Это все. Закладка JSTL tlddoc, это может пригодиться.
Также можно указать значение, заданное с использованием содержимого тела, а не через атрибут value:
<c:set var="somevar" scope="page">
<fmt:message key="${page.title}"/>
</c:set>
Вам нужно будет:
<c:set var="title"><fmt:message key="${page.title}"></c:set>
<c:set var="somevar" scope="page" value="${title}" />
Поскольку вы не можете использовать <fmt:message .. />
на этом месте, это мой опыт, связанный с вложением, как вы и предполагали. Или пойти с предложением @balusc; -)