如何在 ADF JSFF 中捕获异常
How to Capture Exception in ADF JSFF
我目前正在使用 Oracle ADF Essentials using Oracle Enterprise Pack for Eclipse and GlassFish 4 进行开发。
我想捕获一个 Java Exception
并在 JSFF
Task Flow
视图
内的屏幕上正确显示它
怎么做?
这里是 Oracle 官方文档 Handling Exceptions in Task Flows
是说
In the task flow diagram, right-click the activity and choose Mark Activity > Exception Handler
因此使用方法创建支持 bean 或使用方法创建 class 并将其转换为数据控件。请参阅文档 Using Method Call Activities 对方法调用进行拖放并将 activity 标记为异常。
使用以下代码捕获使用 ADF ControllerContext
引发的异常。我假设方法名称为 showException
public void showException() {
ControllerContext cc = ControllerContext.getInstance();
Exception ex = cc.getCurrentViewPort().getExceptionData();
String message = ex.getMessage();
FacesContext fc = FacesContext.getCurrentInstance();
FacesMessage facesMessage =
new FacesMessage(FacesMessage.SEVERITY_ERROR, "UTF: " + message, null);
fc.addMessage(null, facesMessage);
cc.getCurrentRootViewPort().clearException();
fc.renderResponse();
}
我目前正在使用 Oracle ADF Essentials using Oracle Enterprise Pack for Eclipse and GlassFish 4 进行开发。
我想捕获一个 Java Exception
并在 JSFF
Task Flow
视图
怎么做?
这里是 Oracle 官方文档 Handling Exceptions in Task Flows
是说
In the task flow diagram, right-click the activity and choose Mark Activity > Exception Handler
因此使用方法创建支持 bean 或使用方法创建 class 并将其转换为数据控件。请参阅文档 Using Method Call Activities 对方法调用进行拖放并将 activity 标记为异常。
使用以下代码捕获使用 ADF ControllerContext
引发的异常。我假设方法名称为 showException
public void showException() {
ControllerContext cc = ControllerContext.getInstance();
Exception ex = cc.getCurrentViewPort().getExceptionData();
String message = ex.getMessage();
FacesContext fc = FacesContext.getCurrentInstance();
FacesMessage facesMessage =
new FacesMessage(FacesMessage.SEVERITY_ERROR, "UTF: " + message, null);
fc.addMessage(null, facesMessage);
cc.getCurrentRootViewPort().clearException();
fc.renderResponse();
}