0

这是老问题,以前很多人都问过这个问题,但是在阅读了这些问题和答案后,我无法解决我的问题。这是一个非常简单的情况,面板内部的面板是提交按钮以呈现结果面板。如果我添加 immediate="true" 它以某种方式工作,但并不完全像我想要的那样。这基本上就像 Primeface 展示中的展示示例一样简单,但仍然无法正常工作。

案例:当我按下 AJAX 搜索按钮时,它永远不会转到我的托管 bean partnerController.search()。为什么不?

    <p:row>
        <p:column></p:column>
        <p:column><p:commandButton actionListener="#{partnerController.search()}" value="AJAX Search" style="width: 210px; height: 40px;" ajax="true" update="result"/></p:column>

    </p:row>
  </p:panelGrid>


        </p:panel>
        <br />
         <p:panel id="result" rendered="#{partnerController.result.size()>0}">
            <p:scrollPanel style="width:250px;height:200px">  
                <p:dataGrid var="partner" value="#{partnerController.result}" columns="3">  
                    <p:panel header="#{partner.name}" style="text-align:center">  
                        <h:panelGrid columns="1" style="width:100%;" styleClass="noBorders">  
                            <h:outputText value="#{partner.contactPerson}" />  
                            <h:outputText value="#{partner.address}" />  
                            <h:outputText value="#{partner.phone}" />  
                            <h:outputText value="#{partner.email}" />  
                        </h:panelGrid>  
                    </p:panel>  
                </p:dataGrid>  
            </p:scrollPanel>  
            </p:panel>

    </h:form>

我目前在控制器中使用模型:

public List<Partner> search(){

        System.out.println("search()search()search()search()search()search()search()");
        result = new ArrayList<Partner>();
        Partner test = new Partner();
        test.setName("Steve Stacko'partner");
        test.setContactPerson("Sami");
        result.add(test);
        System.out.println("----------off-----------");
        return result;
    }

如果没有 immediate="true",它永远不会进入 managedBean 的搜索方法。Primefaces 的展示说它是这样工作的,但在我的情况下不是这样。

这是 Primefaces 展示: http: //www.primefaces.org/showcase-labs/ui/commandButton.jsf

谢谢你帮助我!顺便说一句,我使用的是 PF 3.4-SNAPSHOT 版本。萨米人

4

0 回答 0