单击完按钮后,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;
}
}
从reference guide,属性oncomplete
做:
你不能引用bean动作!例如,它用于调用JavaScript
方法并由客户端执行。
完整的参考资料可以找到HERE。
您可以使用f:setPropertyActionListener
<p:commandButton id="downloadLink" ajax="false" >
<f:setPropertyActionListener value="true" target="#{dmFile.locked}" />
<p:fileDownload value="#{downloadBean.downloadXMLFile(dmFile)}" />
</p:commandButton>
如果它适用于任何人,请告诉我。