<c: catch> не работает с <fmt: parseNumber> JSTL 1.2

Я реализую простую страницу JSP, используя JSTL 1.2 (Apache Taglibs). Страница делает следующее:

        <c:catch var="error">
            <fmt:parseNumber var="parsedNum" value="${param.num}" />
        </c:catch>

Элемент ввода HTML выглядит следующим образом:

    <input type="text" name="num" size="3"/>

Я знаю, что ввод "12a" разрешен из-за того, как работает механизм разбора. Тем не менее, я хотел бы поймать совершенно неправильный ввод, например, "ааа". К сожалению, выброшенное исключение не управляется <c:catch>, в результате чего Tomcat 7 показывает всю трассировку стека.

Любой совет? Благодарю.

1 ответ

Решение

Пожалуйста, разместите тестируемую страницу для нас. Например, следующая страница прекрасно работает для меня.

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:catch var="error">
<fmt:parseNumber var="parsedNum" value="aaa" />
</c:catch>
${parsedNum}
${error}
Другие вопросы по тегам