方法 - 在Oracle ADF中显示可打印页面时启动打印对话框

时间:2015-06-22 11:09:38

标签: oracle-adf jdeveloper

您好我正在开发一个ADF Web应用程序。在这里我有test.jsf页面和showPrintablePage行为命令按钮。当用户点击按钮时,adf只会在新窗口中显示可打印的页面。但是当用户点击按钮时,它应该直接显示在浏览器的打印窗口中。为此,我从ADF Code Corner获得了以下代码。

public void beforePhaseMethod(PhaseEvent phaseEvent) {
    if (phaseEvent.getPhaseId() == PhaseId.RENDER_RESPONSE) {
        FacesContext fctx = FacesContext.getCurrentInstance();
        AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance();
        if (adfFacesContext.getOutputMode() == OutputMode.PRINTABLE) {
            ExtendedRenderKitService erks = null;
            erks = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
            erks.addScript(fctx, "window.print();");
        }
    }
}

我已经完成了文档中指定的过程。接下来是test.jsf页面代码。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/rich" prefix="af"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:view beforePhase="#{viewScope.PieBean.beforePhaseMethod}">
    <af:document title="printTest" id="d1">
        <af:form id="f1">
            <af:commandButton text="commandButton 1" id="cb1">
                <af:showPrintablePageBehavior/>
            </af:commandButton>
            <af:goButton text="goButton 1" id="gb1"/>
        </af:form>
    </af:document>
</f:view>

但它在test.jsf属性检查器中显示beforePhaseMethod是一个未知属性。

最终结果如下 enter image description here 请帮忙。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您是否在 adfc-config 中注册了bean,或者您是否正在使用任务流,那么在任务流配置中。同样从截图中,您似乎得到了所需的输出。