使用jstl

时间:2016-02-14 19:08:26

标签: jsp jstl

我有这个代码注册文本的值num和检查它是偶数还是奇数,并且它适用于此,当我写一个非数字值然后我有一个问题时出现问题我猜错了500错误' sa NumberFormatException

<form action="Main" method="post">
    <label>Num: </label><input type="text" name="num" size=2/>
    <input type="submit" value="OK"/>
</form>

<c:if test="${num!=null }">
    <c:choose>
        <c:when test="${num%2==0 }">
            <p>${num } is even</p>
        </c:when>
        <c:otherwise>
            <p>${num } is odd</p>
        </c:otherwise>
    </c:choose>
</c:if>

有没有办法抓住它?

1 个答案:

答案 0 :(得分:2)

为此,您可以使用<c:catch>

<c:set var="num" value="Some string"/>

<c:catch var ="e">
    <c:if test="${num!=null }">
        <c:choose>
            <c:when test="${num%2==0 }">
                <p>${num } is even</p>
            </c:when>
            <c:otherwise>
                <p>${num } is odd</p>
            </c:otherwise>
        </c:choose>
    </c:if>
</c:catch>

<c:if test = "${e != null}"> ${e} </c:if>

你会得到:

java.lang.NumberFormatException: For input string: "Some string"