0

我有一个正在使用的 JSP <fmt:formatNumber>。问题是我们不知道传入 JSP 的值是数字还是字符串。如果一个字符串来了,它会抛出 NumberFormatException。

我试图查看 JSTL,但没有成功,如果我检查 value == value 它在某个地方提到它返回 false 如果 String 但没有成功。请看下面的代码。

<fmt:formatNumber type="currency" currencySymbol="$" maxFractionDigits="2" minFractionDigits="2" >${primary.value}</fmt:formatNumber>

任何帮助,将不胜感激。

提前致谢。

4

2 回答 2

1

这可能是您的问题的解决方案。当您尝试将字符串添加到 0 时,您会遇到异常。

<c:catch var="catchString">
  <c:set value="${0 + primary.value}" />
</c:catch>
<c:choose>
<c:when test="${not empty catchString}">
  ${primary.value}
</c:when>
<c:otherwise>
  <fmt:formatNumber type="currency" currencySymbol="$" maxFractionDigits="2" minFractionDigits="2" >${primary.value}</fmt:formatNumber>
</c:otherwise>
</c:choose>
于 2013-04-24T15:24:24.623 回答
0

另一种解决方案是创建一个自定义标签库来检查您是在处理字符串还是数字,甚至手动格式化您的数字(您的选择)。

我没有时间为您制定示例,但我找到了本 教程 ,他们在其中逐步解释了如何实现所有内容。

编辑:更多信息@甲骨文

我希望你能让它工作,如果不让我知道,我明天会尽力帮助你。

于 2013-04-24T16:50:00.440 回答