Task Flow使用指南之五:捕获异常 (3)

187 篇文章 2 订阅
开发环境:JDevloper 11.1.2.2.0+ Oracle Database 10g Express Edition 10.2.0.1。

本实验接着上一个实验,除了可以在TaskFlow中定义ExceptionHandler捕捉异常之外,还可以自定义全局的ExceptionHandler。

重要步骤说明:

1. 新建自定义的ExceptionHandler类
package view;

import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseId;

import oracle.adf.view.rich.context.ExceptionHandler;


public class CustomExceptionHandler extends ExceptionHandler {
    public CustomExceptionHandler() {
        super();
    }

    public void handleException(FacesContext facesContext, Throwable throwable, PhaseId phaseId) throws Throwable {
        String error_message;
        error_message = throwable.getMessage();
        System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%% handleException " + error_message);
        if (error_message != null && error_message.indexOf("ADF_FACES-30108") > -1) {
            ExternalContext ectx = facesContext.getExternalContext();
            ectx.redirect("faces/SessionExpired.jspx");
        } else {
            facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, error_message, null));
            //Code to execute if the if condition is not met
            //throw throwable;
        }
    }
}

2. 创建oracle.adf.view.rich.context.ExceptionHandler文件,注意没有扩展名
该文件位于ADF_TaskFlow_PageToTaskFlow\.adf\META-INF\services目录下,其中services是要你创建的。
该文件的内容为view.CustomExceptionHandler,即指向自定义的ExceptionHandler。

3. 运行deparmentList2页面,最后点击ProcessData2按钮
注意,employees-taskflow2-btf没有继承error-handler-task-flow,因此不会执行controllerExceptionHandler方法。
而是会执行CustomExceptionHandler中的handleException方法。

同时,Console日志输出如下:
%%%%%%%%%%%%%%%%%%%%%%%%% handleException java.lang.Exception: Exception! Data Processing Failed

Project 下载: ADF_TaskFlow_PageToTaskFlow(ExceptionHandler3).7z

参考文献:
1. http://blog.csdn.net/qingqingxuelang/article/details/5576564
2. http://blog.csdn.net/zdwzzu2006/article/details/6568600

3. https://blogs.oracle.com/jdevotnharvest/entry/extending_the_adf_controller_exception_handler

http://maping930883.blogspot.com/2010/04/adf090task-flow-3.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值