13

私はこれを持っています、それは働いています:

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

fmt:message を呼び出した結果の文字列をsomevar変数に割り当てるにはどうすればよいですか?

4

3 に答える 3

26

には、必要なことを効果的に実行fmt:messageするvar属性もあります。

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

それで全部です。JSTLtlddocをブックマークしてください。便利な場合があります。

于 2010-05-31T18:13:49.097 に答える
9

value 属性ではなく、本文の内容を使用して設定する値を指定することもできます。

<c:set var="somevar" scope="page">
  <fmt:message key="${page.title}"/>
</c:set>
于 2010-05-31T18:08:38.443 に答える
5

あなたは以下と関係があるでしょう:

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

その場では使えない<fmt:message .. />のが私の経験なので、おっしゃるように入れ子にする必要があります。または、@baluscの提案を使用してください;-)

于 2010-05-31T18:17:38.147 に答える