JSP,JSTL,Check NaN

时间:2013-04-24 15:06:08

标签: jsp jstl

我有一个使用<fmt:formatNumber>的JSP。问题是我们不知道JSP的值是数字还是字符串。如果字符串即将发出,则抛出NumberFormatException。

我试着查看JSTL,但是没有成功,如果我检查了值==值,它会被提及如果String返回false但没有成功。请参阅下面的代码。

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

任何帮助都将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

我没有时间为你解决这个例子,但我找到了这个 Tutorial 他们逐步解释如何实施一切。

修改:更多信息@ Oracle

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