上传文件p:fileUpload后渲染p:commandButton

BRa*_*t27 2 jsf rendering file-upload button primefaces

我有一个带有p:fileUploadp:commandButton的页面,第一次访问页面时应该隐藏按钮,并且在文件上传后应该呈现按钮.我的代码如下所示,关于如何实现这一点的任何想法?

    <h:form enctype="multipart/form-data" >

        <p:fileUpload
            fileUploadListener="#{fileUploadController.handleFileUpload}"
            mode="advanced"
            multiple="true"
            sizeLimit="2000000000"
            allowTypes="/(\.|\/)(txt|csv)$/"
            required="true"
            label="Seleccionar"
            uploadLabel="Subir a servidor"
            cancelLabel="Cancelar">
        </p:fileUpload>

        <p:commandButton id="btnValidar" value=" Validar "
                         rendered="#{fileUploadController.btnRendered}"
                         style="margin-left: 430px;"/>

    </h:form>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 8

只需使用与update所有其他PrimeFaces ajax组件相同的属性.

<p:fileUpload update="@form" />
Run Code Online (Sandbox Code Playgroud)

我当然假设你已经设置btnRenderedtrue内部handleFileUpload方法.

请注意,您无法将其设置为按钮本身的ID,因为btnRendered默认情况下它不会出现在HTML DOM树中false.它就是JavaScript,它根据检索到的Ajax响应在HTML DOM树中执行更新作业.如果要单独更新按钮而不是表单,请将其包装在HTML DOM树中始终存在的另一个组件中:

<h:panelGroup id="btnValidar">
    <p:commandButton rendered="#{fileUploadController.btnRendered}" />
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

并按如下方式更新

<p:fileUpload update="btnValidar" />
Run Code Online (Sandbox Code Playgroud)

也可以看看: