将 Java 字符与 EL 中的整数进行比较
Compare Java Char to Integer in EL
我有一个简单的要求,我想比较 EL 语法中的 Java Char 和 Integer,我该怎么做?
<select name="rating" id="id-rating">
<c:forEach var="i" begin="1" end="5" >
<c:choose>
<c:when test="${javaObject.rating == i }">
<option value="${i }" selected="selected">${i }</option>
</c:when>
<c:otherwise>
<option value="${i }">${i }</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>${javaObject.rating }
我试过了
"eq"
同狱
- var状态变量
例如
loop.index
- 还有
loop.current
${javaObject.rating }
是我从 Java Class(Spring 控制器)
得到的
这对我来说很好
${1 eq Integer.parseInt('1')} // return true
这确实不行。技术问题是,char 1
的整数值为 49
。 (代码点)。证据在这里:
System.out.println((int) '1'); // 49
因此,您需要添加一个整数偏移量以匹配字符的代码点。
<c:forEach var="i" begin="49" end="53">
${bean.rating == i}<br/>
</c:forEach>
或者,将 <c:set>
与 body 中的值一起使用,将值转换为 String
。然后 EL 将以正确的方式进行自动强制转换。
<c:forEach var="i" begin="1" end="5">
<c:set var="ratingAsString">#{bean.rating}</c:set>
${ratingAsString == i}<br/>
</c:forEach>
另请参阅:
- Difference between specifying JSTL <c:set> value via attribute and body
- How to compare a char property in EL
我有一个简单的要求,我想比较 EL 语法中的 Java Char 和 Integer,我该怎么做?
<select name="rating" id="id-rating">
<c:forEach var="i" begin="1" end="5" >
<c:choose>
<c:when test="${javaObject.rating == i }">
<option value="${i }" selected="selected">${i }</option>
</c:when>
<c:otherwise>
<option value="${i }">${i }</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>${javaObject.rating }
我试过了
"eq"
同狱- var状态变量
例如
loop.index
- 还有
loop.current
${javaObject.rating }
是我从 Java Class(Spring 控制器)
这对我来说很好
${1 eq Integer.parseInt('1')} // return true
这确实不行。技术问题是,char 1
的整数值为 49
。 (代码点)。证据在这里:
System.out.println((int) '1'); // 49
因此,您需要添加一个整数偏移量以匹配字符的代码点。
<c:forEach var="i" begin="49" end="53">
${bean.rating == i}<br/>
</c:forEach>
或者,将 <c:set>
与 body 中的值一起使用,将值转换为 String
。然后 EL 将以正确的方式进行自动强制转换。
<c:forEach var="i" begin="1" end="5">
<c:set var="ratingAsString">#{bean.rating}</c:set>
${ratingAsString == i}<br/>
</c:forEach>
另请参阅:
- Difference between specifying JSTL <c:set> value via attribute and body
- How to compare a char property in EL