[英]How to throw an exception out of my java bean
我在jsp应用程序中使用javaBean来存储表单值。 这就是我将自己的价值观融入豆子的方法。 这段代码是我的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()函数来验证值,但是如果我可以直接抛出Exception以便form.jsp可以捕获它,那就太麻烦了。
太长。 mantuko
只需让该方法将其抛出并使用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委托业务/动作模型,做验证,收集所有的错误信息在某种Map
在请求范围内,您在访问EL。 绝对不要在JSP中使用scriptlet。 JSTL提供了核心,fmt和功能标记库中所需的几乎所有内容 。
1)声明要抛出的异常2)“抛出新异常”
public void setAge(int a) throws Exception {
if (this.validAge(a))
age =a ;
else
throw new Exception("...")
}
我更喜欢与该文本框的onblur事件关联的JavaScript验证方法。 让JavaScript为您管理此事务,而不是Java Bean。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.