有时候需要在managed-bean构造方法里执行一些逻辑代码,这时如果抛出了异常,该如何捕捉呢?
10年积累的做网站、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有娄底免费网站建设让你可以放心的选择与我们合作。
JSF的事件被执行时,如果在事件处理方法中抛出了Exception,我们可以通过JSF提供的ActionListener机制catch到抛出的Exception,然后根据Exception类型执行不同的错误处理。
但有时候需要在managed-bean构造方法里执行一些逻辑代码,这时如果抛出了异常,该如何捕捉呢?
你可能会想到在Filter里加以捕捉处理,但不幸的是,你在Filter里只能捕捉到经过被加工了的Exception:ServletException,而且你也没办法将其还原成最初被抛出的Exception。
要达到这个目的,我们可以利用JSF框架提供的variable-resolver切入点。因为JSF的managed-bean的instance,就是由variable-resolver所定义类所生成的。
所以我们可以借助JSF提供的机制,注册我们自己的variable-resolver类,从而就可以捕捉到managed-bean构造方法执行时抛出的异常了。
具体方法为:
自定义一个VariableResolverImpl类,该类需要实现虚类javax.faces.el.VariableResolver,为了简便起见,我们可以根据情况,重载所使用的JSF实现里的相关类就可以了,比如MyFaces的情况下,重载 org.apache.myfaces.el.VariableResolverImpl. resolveVariable方法就可以了。
代码如下:
在faces-config.xml里注册刚才实现的类,让JSF使用我们提供的类解析变量
mypackage.VariableResolverImpl
在其他地方处理异常,比如Filter里
网站题目:在JSF应用中捕捉managed-bean构造方法
文章路径:http://www.shufengxianlan.com/qtweb/news18/547218.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联