jsf a4j无法在弹出屏幕上工作

时间:2012-05-02 07:16:19

标签: java jsf

我在JSF工作

当我打开弹出屏幕时,我的a4j ajax调用不起作用。

如果我没有弹出窗口,同样的屏幕可以工作。

这是常见的事吗?


弹出一个页面,其中......代码很少......

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib prefix="t" uri="http://myfaces.apache.org/tomahawk"%>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>

延迟设置为

<a4j:queue requestDelay="500" ignoreDupResponses="true" />

和实际的ajax调用如

<a4j:commandLink 
    actionListener="#{insuranceBackingBean.viewAll}"
    ajaxSingle="true"
    reRender="formularyList, noRecFoundGridForFormulary, patientCurrentDemographicDetails,patientInsuranceDemographicDetails,conflictSection"
    eventsQueue="onClick"
    onclick="setEligibilityValues('#{insuranceBean.fromEligibility}','#{insuranceBean.payerMessage}','#{insuranceBean.pharmacyBenefitRetailCoverageStatus}','#{insuranceBean.pharmacyBenefitMailOrderCoverageStatus}','#{insuranceBean.pharmacyBenefitLTCCoverageStatus}','#{insuranceBean.pharmacyBenefitSpecialtyCoverageStatus}');setVisibleConflictGrid();"
    >
    <f:verbatim>View</f:verbatim>
    <f:param name="insuranceID" value="#{insuranceBean.id}" />      

其中setEligibilityValues是正在调用的脚本,但未调用insuranceBackingBean.viewAll

有没有办法troubleshoot这个???

1 个答案:

答案 0 :(得分:0)

我不知道您使用哪个组件/标签作为弹出窗口,但我使用不同的组件多次遇到此问题,我知道的唯一解决方案是:您应该将弹出窗口打开为模态对话框。这意味着它应该在 iframe 中呈现。

通常,如果弹出窗口未配置为模态,而不是通常在div / span中呈现,并且由于某种原因,ajax调用无法在服务器端执行。