使用p:commandButton时更改bean的值

问题描述 投票:0回答:2

单击完按钮后,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
2个回答
1
投票

reference guide,属性oncomplete做:

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

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

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


-1
投票

您可以使用f:setPropertyActionListener

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

如果它适用于任何人,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.