当值小于10时,在jstl标记中追加前导零

时间:2015-09-23 06:17:21

标签: jsp jstl

我的jsp视图中有一个select元素。我希望当值小于10时,它会在数字前添加0,以便101。到目前为止,这是我的代码:

   <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:。我的代码出了什么问题?

2 个答案:

答案 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>