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>

你必须在你的to cast from to之后将整个测试放在${}and之间。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 回答