从jsf页面访问支持bean中的变量
我在jsf页面中有两个primefaces面板组件。我想通过单击primefaces commandButton和页面加载时显示panel1来显示面板上的一些数据。当单击commandButton时,我不想显示其他面板。所以我在backing bean中定义了布尔变量,以便在面板的visible属性中使用。但它不起作用 支持Bean:从jsf页面访问支持bean中的变量,jsf,managed-bean,Jsf,Managed Bean,我在jsf页面中有两个primefaces面板组件。我想通过单击primefaces commandButton和页面加载时显示panel1来显示面板上的一些数据。当单击commandButton时,我不想显示其他面板。所以我在backing bean中定义了布尔变量,以便在面板的visible属性中使用。但它不起作用 支持Bean: @ManagedBean @SessionScoped public class Bean implements Serializable { pri
@ManagedBean
@SessionScoped
public class Bean implements Serializable {
private boolean show;
@PostConstruct
public void init(){
this.show=true;
}
public void action_commandButton(){
this.show=false;
}
}
Jsf页面
<p:commandButton style="text-align: center;font-size:12px;"
action="#{bean.action_commandButton()}" value=""/>
<!--panel 1 -->
<p:panel visible="#{bean.show}">
<p:dataGrid>
<!-- data from datbase-->
</p:dataGrid>
</p:panel>
<!-- panel 2-->
<p:panel visible="#{!bean.show}">
<p:dataGrid>
<!-- data from datbase-->
</p:dataGrid>
</p:panel>
如何解决这个问题?
提前感谢。命令按钮的JSF标记在哪里?这是Ajax请求还是全文回帖?为什么不按
可见的顺序使用rendered
属性?我对面板中有datagrid组件的问题感到困惑。因此我尝试使用panel visible属性。提示:最好将bean的范围更改为@ViewScoped
,这样就可以创建bean了每页访问,而不是按会话访问一次。我认为您只需要为“show”添加一个get和set方法。如果没有,则无法访问专用字段。