单击按钮后不调用属性actionListener中的方法

时间:2015-10-14 03:24:47

标签: jsf jsf-2 primefaces

我对jsf框架有疑问。这是我的控制者:

控制器

package controller;

@ManagedBean
@ViewScoped
#public class Controller implements Serializable {

    private boolean blView;

    @PostConstruct
    public void init() {
        blView = true;
    }

    public void add() {
        System.out.println("This is method add");
        blView = false;
    }

    public void back() {
        System.out.println("This is method back");
        blView = true;
    }

    public boolean isBlView() {
        return blView;
    }

    public void setBlView(boolean blView) {
        this.blView = blView;
    }

}

文件index.xhtml

  

 <h:form id="frmView" >
        <p:panel id="pnlControl">
            <p:commandButton id="p1" actionListener="#{controller.back()}" immediate="true" rendered="#{!controller.blView}"
                             process="@this" value="Back" update=":frmView:pnlControl :frmView:pnlAdd"/>

          <p:commandButton id="p2" actionListener="#{controller.add()}" immediate="true" rendered="#{controller.blView}" 
                             value="Add" process="@this" update=":frmView:pnlControl :frmView:pnlAdd"/>

     </p:panel>

     <p:panel id="pnlAdd" visible="#{!controller.blView}">
            <p:panelGrid columns="2" >
                <f:facet name="header" >
                    Info
                </f:facet>

            <h:outputLabel value="Name: " />
                <h:inputText value="Hello Viet Nam." />

       </p:panelGrid>

   </p:panel>
     

     

因此,当我添加或删除属性actionListener="#controller.back()}"时,单击按钮时不会强制执行方法back()。谢谢提前。

0 个答案:

没有答案