Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSTL NumberFormatException_Java_Spring_Hibernate_Jsp_Jstl - Fatal编程技术网

Java JSTL NumberFormatException

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}">

我有一个spring+hibernate应用程序,在DAO层中进行本机查询。查询如下所示

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