java - 如何更新托管bean的属性成员变量?

标签 java jsf jsf-2

我在托管 bean 中有一个成员变量,该成员变量通过 getter 和 setter 绑定(bind)到 XHTML 中的组件。如果我在函数调用中设置成员变量,当触发该成员变量的getter时,该成员变量仍将保留旧值。我可以知道如何更新这个成员变量以便组件可以获得最新的更新值吗?

管理bean:

@ManagedBean(name = "myBean")
@SessionScoped    
public class MyBean {
  public boolean show = false;

  /** getter and setter **/

  public void theFunc() {
     this.show = true;
  }
}

XHTML 代码

<h:panelGroup id="Panel_1" rendered="#{myBean.show == true}">
   ...
   Some rubbish here
   ...
</h:panelGroup>

<h:panelGroup id="Panel_2">
   <h:commandLink action="#{myBean.doFunc}">
      <f:ajax event="action" render="Panel_1"/>
      <h:outputText value="XX" />
   </h:commandLink>
</h:panelGroup>

在此示例中,即使 theFunc() 已设置为 true,show 变量仍显示 false。

2012 年 10 月 6 日更新 我已经删除了commandButton并替换为commandLink,我认为在使用方面应该没问题。

最佳答案

如果您希望调用方法,请更改方法返回类型名称

改变这个

  public void theFunc() {
     this.show = true;
  }

到此

  public String doFunc() {
     this.show = true;
     return null;
  }

否则此操作无法进行。

   <h:commandLink action="#{myBean.doFunc}">

然后像这样更新面板的父级

<h:panelGroup id="parentPanelGroupId">

    <h:panelGroup id="Panel_1" rendered="#{myBean.show}">
        ...
        Some rubbish here
        ...
    </h:panelGroup>

</h:panelGroup>

<h:panelGroup id="Panel_2">
   <h:commandLink action="#{myBean.doFunc}">
      <f:ajax render="parentPanelGroupId"/>
      <h:outputText value="SHOW/HIDE PANEL 1" />
   </h:commandLink>
</h:panelGroup>

注意:

使用

rendered="#{myBean.show}"

而不是

rendered="#{myBean.show == true}"

关于java - 如何更新托管bean的属性成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12732257/

相关文章:

java - Android 服务调用 AsyncTask

java - java for-each循环的类型转换问题

java - NetBeans 中 GUI 之前的 JOptionPane

jquery - JSF 和 Jquery AJAX - 如何让它们一起工作?

jsf - 警告 : JSF1091: No mime type could be found for file QcFormDean. jsp,但等待它的 jsf 文件

java - 使用泛型从子接口(interface)重写接口(interface)方法的正确方法是什么?

java - 丰富 :simpleTogglePanel neither calls action nor actionListener

jsf-2 - JSF 2.0 RenderResponse 和 ResponseComplete

jsf - 仅忽略 JSF 中的无效查询参数

java - JSF 2 复合 :actionSource exposing commandButtons in ui:repeat