我对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;
}
}
<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()
。谢谢提前。