Mr.*_*mes 3 jsf button primefaces
这是我的ManagedBean:
@Named(value = "mrBean")
@RequestScoped
public class MrBean {
public void laugh() {
System.out.println("HAHAHA");
}
public void prepareToLaugh() {
System.out.println("Drink water.");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的commandButton的工作版本:
<p:commandButton actionListener="#{mrBean.laugh}" widgetVar="laughtButton"
value="Laugh" oncomplete="laughButton.disable();" />
Run Code Online (Sandbox Code Playgroud)
当我点击上面的按钮时,我看到HAHAHA了按钮被禁用.但是,当我将laughButton的disable属性设置为时true,该按钮不再起作用:
<p:commandButton actionListener="#{mrBean.laugh}" widgetVar="laughtButton"
value="Laugh" disabled="true" oncomplete="laughButton.disable();" />
<p:commandButton actionListener="#{mrBean.prepareToLaugh}"
value="Prepare to laugh" oncomplete="laughButton.enable();" />
Run Code Online (Sandbox Code Playgroud)
当我点击第二个按钮时,我看到Drink water并启用了第一个按钮.但是,当我点击第一个按钮时,没有任何反应.
如果有人能就如何解决这个问题给我一个建议,我将非常感激.我正在使用PrimeFaces 3.0 RC2.
与rendered属性一样,JSF disabled在处理表单提交期间重新评估服务器端的属性,作为防止篡改请求等的一部分.但是,您可以通过JS启用/禁用它,而无需通知服务器端更改.
每当您希望在处理表单提交期间启用按钮时,您需要确保在请求期间disabled评估属性的值false.例如,将其绑定到boolean由另一个按钮设置的视图范围bean 的属性.
<h:commandButton disabled="#{bean.laughDisabled}" />
Run Code Online (Sandbox Code Playgroud)