首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSTL NumberFormatException

JSTL NumberFormatException
EN

Stack Overflow用户
提问于 2013-03-19 19:35:57
回答 1查看 1K关注 0票数 0

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

代码语言:javascript
运行
复制
select name, amount from myTable where id=:id

很明显,所选字段具有不同的数据类型(字符串、数字)。

在JSP中,我希望以表格的形式打印返回的结果,所以我使用foreach loop来遍历返回集中的每条记录。

我想把负数放在大括号之间,所以我使用下面的代码

代码语言:javascript
运行
复制
<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并将返回的数据转换为一个对象,但由于前面的原因,这种方法并不适用。

有没有解决这个问题的方法?

EN

回答 1

Stack Overflow用户

发布于 2013-03-19 20:27:11

你试过这样做吗??

代码语言:javascript
运行
复制
 <c:when test=${v<0}>
            <c:out value="(${v})"></c:out>
                     </c:when>
            <c:otherwise>
             <c:out value="${v}"></c:out>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15498385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档