gpt4 book ai didi

java - p :commandbutton doing the opposite of what i require

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:02 25 4
gpt4 key购买 nike

我一直在尝试禁用按钮,直到操作完成,然后这应该启用按钮

按钮代码:

<p:commandButton action="#{navigationBean.naviagtion}"   value="Next" disabled="#{!fileUploadController.uploadComplete}"/>

这是 bean FileUploadController,它是一个托管和 View 范围的 bean

    private boolean uploadComplete;

uploadComplete = false;
System.out.println("Upload complete value before copy file " + uploadComplete);
copyFile(event.getFile().getFileName(), event.getFile().getInputstream());


} catch (IOException e) {
//handle the exception
e.printStackTrace();
}

}



public void copyFile(String fileName, InputStream in) throws IOException {
try {
uploadComplete = true;

//does things

public boolean isUploadComplete() {
return uploadComplete;
}

public void setUploadComplete(boolean uploadComplete) {
this.uploadComplete = uploadComplete;
}

在控制台中,我将其设置为每次 uploadComplete 从 false 变为 true 时输出打印,我得到:

INFO: Upload complete value before copy file false
INFO: upload complete value is : true

如您所见,值从 false 变为 true,问题是按钮再也不会激活,这是为什么?

这很好用,没有错误等,只是按钮问题

编辑:

经过一些测试,我发现这段代码:

<p:commandButton id="Nav" action="#{navigationBean.naviagtion}"   value="Next"  ajax="False" update ="Nav" disabled="#{fileUploadController.uploadComplete}"/> 

它使按钮在启动时处于 Activity 状态,但是当我上传文件并单击按钮时,它会刷新页面然后变为禁用,这与我想要发生的事情完全相反哈哈,那么如何才能取消此操作?我试过交换 true 和 false 语句,但这没有用,这从来没有使按钮禁用

我怎样才能翻转控件,使它做与现在相反的事情

最佳答案

our latest conversation 之后我看了一下 official documentation .
我发现,就像 Sujoy 评论的那样,p:fileOupload有一个属性 update ,在上传完成后呈现一个组件。所以你更新你的Nav通过添加 update="Nav"给你的<p:fileUpload> .这样你的按钮应该正确地重新呈现。
也许你应该切换 disabled="#{fileUploadController.uploadComplete}"/>返回disabled="#{!fileUploadController.uploadComplete}"/>因为如果uploadComplete == true ,该按钮应该被禁用。
您必须将更新放在上传组件中,而不是按钮本身!
希望您的测试没有弄乱您的代码;)

关于java - p :commandbutton doing the opposite of what i require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com