使用p:commandButton时更改bean的值

时间:2014-01-06 17:06:59

标签: jsf primefaces javabeans commandbutton

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

以下是代码:

    <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;
           }

    }

2 个答案:

答案 0 :(得分:1)

reference guide,属性oncomplete执行:

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

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

可以找到完整的参考资料HERE

答案 1 :(得分:-1)

您可以使用f:setPropertyActionListener

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

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