2016-02-14 4 views
0

У меня есть этот код, который регистрирует значение num текста и проверяет, является ли он четным или нечетным, и он работает для этого, проблема возникает, когда я пишу нечисловое значение, а затем i имеют ошибку 500 на то, что я предполагаю, что это NumberFormatExceptionПоймать ошибки в jsp с помощью jstl

<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

С этой целью вы можете использовать <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" 
Смежные вопросы