【问题标题】:Change value of bean when using p:commandButton使用 p:commandButton 时更改 bean 的值
【发布时间】:2014-01-06 17:06:58
【问题描述】:

当我完成单击按钮时,bean 的值不会改变。我没有任何错误,但它不起作用:“锁定”仍被评估为 false

代码如下:

    <p:column>
         <p:commandButton id="downloadLink"  ajax="false"  oncomplete="#{dmFile.setLocked(true)}">
             <p:fileDownload value="#{downloadBean.downloadXMLFile(dmFile)}"  />  
        </p:commandButton> 

     <p:column headerText="lock" style="width:2%">
            <h:outputText value="#{dmFile.locked}" />              
     </p:column>   

我的豆子是

    public class DMFile{

          private boolean locked;

          public boolean isLocked() {
               return locked;
          }

          public void setLocked(boolean locked) {
              this.locked = locked;
           }

    }

【问题讨论】:

    标签: jsf primefaces javabeans commandbutton


    【解决方案1】:

    reference guide,属性oncomplete 会:

    • 客户端在 ajax 请求完成时执行回调。

    您不能引用 bean 动作!例如,它用于调用JavaScript 方法并由客户端执行。

    完整参考可以在HERE找到。

    【讨论】:

    • 感谢您的评价!
    【解决方案2】:

    你可以使用 f:setPropertyActionListener

    <p:commandButton id="downloadLink"  ajax="false" >
                 <f:setPropertyActionListener value="true" target="#{dmFile.locked}" />
                 <p:fileDownload value="#{downloadBean.downloadXMLFile(dmFile)}"  />  
    </p:commandButton> 
    

    让我知道它是否对任何人有用。

    【讨论】:

    猜你喜欢
    • 2012-05-19
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 2012-09-29
    • 2023-03-14
    • 2016-05-20
    相关资源
    最近更新 更多