Java JSTL NumberFormatException
我有一个spring+hibernate应用程序,在DAO层中进行本机查询。查询如下所示Java JSTL NumberFormatException,java,spring,hibernate,jsp,jstl,Java,Spring,Hibernate,Jsp,Jstl,我有一个spring+hibernate应用程序,在DAO层中进行本机查询。查询如下所示 select name, amount from myTable where id=:id 很明显,所选字段具有不同的数据类型(字符串、数字) 在JSP中,我希望在表中打印返回的结果,因此我使用foreach循环遍历返回集中的每条记录 我想把负数放在大括号之间,所以我使用下面的代码 <c:forEach var="item" items="${resultSet}">
select name, amount from myTable where id=:id
很明显,所选字段具有不同的数据类型(字符串、数字)
在JSP中,我希望在表中打印返回的结果,因此我使用foreach循环
遍历返回集中的每条记录
我想把负数放在大括号之间,所以我使用下面的代码
<c:forEach var="item" items="${resultSet}">
<tr>
<c:forEach var="v" items="${item}" varStatus="st">
<td>
<c:choose>
<c:when test="${v != null}">
<c:choose>
<c:when test="${v<0}">
<c:out value="(${v})"></c:out>
</c:when>
<c:otherwise>
<c:out value="${v}"></c:out>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<c:out value="-"></c:out>
</c:otherwise>
</c:choose>
</td>
</c:forEach>
</tr>
</c:forEach>
由于查询中的第一项是字符串,因此此代码激发NumberFormateException
我知道解决这个问题的两种方法。第一个是在SQL查询中使用大括号,但我不能使用此解决方案,因为应用程序包含许多查询,修改所有查询将花费大量时间
第二种解决方案是使用resultTransformer并将返回的数据转换为一个对象,但由于前面相同的原因,这种方法不适用
有解决这个问题的方法吗?你试过这样做吗
<c:when test=${v<0}>
<c:out value="(${v})"></c:out>
</c:when>
<c:otherwise>
<c:out value="${v}"></c:out>
这就是我所做的请检查我问题中的代码检查第一行${v