我想使用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>
目前我觉得它没有将它存储为字符变量,因此测试失败了。 (没有错误/例外)
答案 0 :(得分: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)
,以便从Character
投射到String
。
答案 1 :(得分:2)
如果这对其他人有用,我可以通过使用“sp00m”建议来解决这个问题。
<c:set var="letter" value='${param.colorLetter.toLowerCase().charAt(0).toString()}' ></c:set>
表达式语言将其存储为一个字符,然后评估它必须涉及比较ascii值。上面的方法将Character转换为String,然后将其存储在“letter”变量中。那么这只是一个简单的字符串比较问题:
<c:when test='${letter=="v"}'>