我的jsp视图中有一个select元素。我希望当值小于10时,它会在数字前添加0
,以便1
为01
。到目前为止,这是我的代码:
<select id="sample" name="sample">
<c:forEach var="i" begin="1" end="10">
<option value=${i}>${ i<12 ? "0"+i : i} hour</option>
</c:forEach>
</select>
当我运行我的代码时,我收到错误java.lang.NumberFormatException: For input string:
。我的代码出了什么问题?
答案 0 :(得分:2)
在EL中,+
是加法运算符,而不是字符串连接运算符。字符串连接运算符仅在EL版本3.0为+=
时可用。
但是,你不需要这里。只需内联两个表达式,如下所示:
<option value="${i}">${i < 10 ? '0' : ''}${i} hour</option>
请注意,我还修复了逻辑错误。
答案 1 :(得分:0)
您还可以使用fmt
taglib:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
...
<option value="${i}"><fmt:formatNumber type="number" minIntegerDigits="2" value="${i}" /> hour</option>