I have a question about jsf
framework. This is my controller:
controller
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;
}
}
File 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>
So, when I added or deleted attribute actionListener="#controller.back()}"
, the method back()
are not enforced when I click on the button. Thank advance.