3

JSTLを使用して文字値を変数に格納したかった

これを行うための私のコードは次のとおりです。

<c:set var="letter" value='${param.colorLetter.toLowerCase().charAt(0)}' ></c:set>

次に、文字が「v」であるかどうかを確認する必要があります。

        <c:choose>
            <c:when test="${letter}=='v'">
                <lable>Color Name: </lable>Violet<br/>
            </c:when>
        </c:choose>

現在、文字変数として保存されていないと感じているため、テストに失敗しています。(エラー/例外なし)

4

2 に答える 2

5
<c:set var="letter" value="${param.colorLetter.toLowerCase().charAt(0).toString()}" />

<c:choose>
    <c:when test="${letter eq 'v'}">
        <lable>Color Name: </lable>Violet<br/>
    </c:when>
</c:choose>

テスト全体をとの間に配置し、からにキャストする後${}に追加する必要があります。toString()charAt(0)CharacterString

于 2012-08-21T11:15:26.430 に答える
2

これが他の人に役立つ場合に備えて、「sp00m」の提案を使用してこの問題を解決することができました。

<c:set var="letter" value='${param.colorLetter.toLowerCase().charAt(0).toString()}' ></c:set>

式言語はそれを文字として保存し、それを評価するにはASCII値を比較する必要があります。上記のメソッドは、文字を文字列に変換してから、「文字」変数に格納します。次に、それは単純な文字列比較の問題です。

<c:when test='${letter=="v"}'>
于 2012-08-21T11:58:39.733 に答える