我需要在网页上的两个面板之间切换显示。最初将显示第一个带p:commandButton“First”的面板。单击First按钮将发送ajax请求并显示第二个面板与p:commandButton“Second”。单击“第二个”按钮显示“第一个面板。但是,第二个面板视图状态未更新,因此p:commandButton”第二个“无法触发事件。
<h:form id="firstForm" >
<h:panelGroup id="filterPanel" rendered="#{not filter.accepted}" >
<div id="menu">
<p:commandButton value="First" action="#{filter.action1}" update=":firstForm" >
</p:commandButton>
</div>
</h:panelGroup>
<h:panelGroup id="reportPanel" rendered="#{filter.accepted}" >
<div id="menu2">
<p:commandButton value="Second" action="#{filter.action2}" update=":firstForm">
</p:commandButton>
</div>
</h:panelGroup>
</h:form>
Bean代码:
private boolean accepted;
public void action1(){
System.out.println("Filter Button");
accepted = true;
}
public void action2(){
System.out.println("Report Button");
accepted = false;
}
public boolean isAccepted() {
System.out.println(accepted);
return accepted;
}
第一个面板p:commandButton“First”调用action1并打印“Filter Button”。第二个面板p:commandButton“Second”不会调用action2函数,因为它的viewstate不可用。有没有解决方案。
我浏览了类似的页面,它对我也没有用 JSF2: Form ajax action makes another form's view state to be lost
由于
KDB