<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}