如何启用/禁用JSF命令按钮

时间:2012-01-31 13:05:10

标签: jsf primefaces

场景如下:

屏幕上有两个按钮,例如button1和button2。在页面加载时,button2被禁用。当用户单击button1时,将启用button2。我使用javascript window.onload事件和button1上的onclick事件实现了这个功能。我的问题是,当用户点击button1时,它会触发页面重新加载。话虽如此,在重新加载页面后,由于onload事件,button2被禁用。

是否有其他方法可以实现此功能?

顺便说一句,我使用的是primefaces。

2 个答案:

答案 0 :(得分:12)

primeface页面就像这样,

 <p:commandButton update="panel1"  actionListener="#{bean.button1}" value="button1" disabled="#{bean.disable}"> 
     <f:setPropertyActionListener value="#{false}" target="#{bean.disable}"/>   
 </p:commandButton> 


 <p:commandButton update="panel2"  actionListener="#{bean.button2}" value="button1" disabled="#{!(bean.disable)}"> 
     <f:setPropertyActionListener value="#{true}" target="#{bean.disable}"/>    
 </p:commandButton> 

管理Bean:

 public class Bean {

    private boolean disable;

    // default constructor 
    public Bean(){
       this.disable= false;
    }

    public boolean isDisable() {
       return disable;
    }
    public void setDisable(boolean disable) {
       this.disable = disable;
    }
}

答案 1 :(得分:0)

如果您使用的是JSF 2.0,则可以使用f:ajax标记完成此操作。

您可以禁用包含bean条件的按钮

disabled="#{bean.isDisabled}"

当您单击按钮1时重新显示按钮时,可以启用该按钮。