Ajax并不总是有效

时间:2013-03-31 14:08:33

标签: jsf jsf-2 primefaces

下面你看到我的代码的一部分,我只想选择表单中的第一个值,其余的应该通过ajax更新,例如,如果你选择PK比,MccName,MccVorname,MccDepartment应该通过ajax显示选择之后。 这也应该是独立的其他形式,

<h:panelGrid columns="4">
    <h:form id="formmcc10">
        <h:outputText value="Pls select PK: " />
        <p:selectOneMenu value="#categorymcc.mcccatname}" id="mcccat"
            immediate="true" valueChangeListener="#categorymcc.processScat}">
            <f:selectItem itemLabel="#categorymcc.mcccatname}"itemValue="" />
            <f:selectItems value="#categorymcc.categoryName}" />
            <p:ajax update="formmcc10:mccscat1 formmcc10:mccscat2 formmcc10:mccscat3" event="change" />
        </p:selectOneMenu><h:outputText value="Mcc Name" />
        <p:selectOneMenu value="#{categorymcc.submcccatname}"id="mccscat1">
            <f:selectItemsvalue="#{categorymcc.subCategoryName}" />
        </p:selectOneMenu>
        <h:outputText value="Mcc Vorname" />
        <p:selectOneMenu value="#{categorymcc.subsubmcccatname}"id="mccscat2">
            <f:selectItems value="#{categorymcc.subSubCategoryName}" />
        </p:selectOneMenu>
        <h:outputText value="Mcc Department:" />
        <p:selectOneMenu value="#{categorymcc.abteilung}" id="mccscat3">
            <f:selectItems value="#{categorymcc.abteilungCategoryName}" />
        </p:selectOneMenu>
    </h:form>
</h:panelGrid>

1 个答案:

答案 0 :(得分:0)

这可能是任何事情,但我最近遇到了一个有趣的问题。我尝试输出像#{myBean.otherBean.name}这样的bean属性,当我按照正常请求加载页面时它起作用,但它不适用于AJAX。当我尝试#{myBean.otherBean.id}时,它在两种情况下均有效。

问题是,后端系统没有在AJAX请求上填充otherBean的所有数据,它只填充id(可能是为了获得更好的性能)。我必须准备一个getOtherBeanById方法,当我打电话给它时,AJAX开始按预期工作。

我不是这个领域的专家,也许有人对此有更准确的解释。