我目前正在使用Oracle ADF Essentials和Oracle Enterprise Pack for Eclipse GlassFish 4进行开发。
我想捕获一个Java Exception
并在JSFF
Task Flow
视图内的屏幕上正确显示它
怎么做?
答案 0 :(得分:1)
以下是官方Oracle文档 Handling Exceptions in Task Flows
是说
在任务流程图中,右键单击该活动,然后选择标记活动>异常处理程序
因此,使用方法创建支持bean或使用方法创建类并将其转换为数据控件。请参阅文档 Using Method Call Activities 拖放以进行Method调用,并将该活动标记为异常。
使用以下代码捕获使用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();
}