作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 jsp 应用程序中使用 javaBean 来存储表单值。这就是我将我的值(value)观融入我的 bean 的方式。此代码是我的 form.jsp 的一部分
try {
<jsp:setProperty name="formparam" property="*" />
}
catch (Exception e){ error = true; }
我留下了“<%”,以免破坏 stackoverflow 上的代码显示。现在,如果有人在我的年龄字段中输入文本,那么类型对话会引发异常,我就会得到异常。
现在我想知道是否可以在我的 bean 的 setter 中抛出异常并使用完全相同的 try-catch-block 捕获它。
我的 bean 示例:(我知道这甚至无法编译,但我希望您了解我想要什么)
public void setAge(int a) {
if (this.validAge(a))
age = a;
else
throw Exception;
}
希望大家明白我的意思。当然,可以从 form.jsp 调用我的 bean 中的 validAge() 函数来验证该值,但如果我可以直接抛出异常以便 form.jsp 可以捕获它,那就更灵活了。
这么久。 曼图科
最佳答案
让方法抛出它并使用 JSTL c:catch
来处理它。
<c:catch var="error">
<jsp:setProperty name="formparam" property="*" />
</c:catch>
<c:if test="${not empty error}">
<p>Error: ${error}</p>
</c:if>
也就是说,JSP 是进行验证的错误位置。而是将表单提交给 Servlet
,让 servlet 委托(delegate)一个执行验证的业务/操作模型,在您请求范围内的某种 Map
中收集所有错误消息在 EL 中访问。 绝不在 JSP 中使用 scriptlet。 JSTL提供漂亮everything您需要核心、fmt 和函数标签库。
关于java - 如何从我的 java bean 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970916/
我是一名优秀的程序员,十分优秀!