繁体   English   中英

如何从我的Java bean中抛出异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM