【问题标题】:Passing input text value with file upload in primefaces在primefaces中通过文件上传传递输入文本值
【发布时间】:2018-11-03 09:13:24
【问题描述】:

我要求我必须将 inputText 的值传递给包含文件版本以及文件上传的支持 bean。 我一直在尝试使用远程命令来实现它,但没有工作。

下面是我的代码:

 <h:form enctype="multipart/form-data" id="uploadForm">
                        <p:growl id="messages" showDetail="true" />
                        <p:outputLabel for="vers" value="File Version:" />
                        <p:inputText id="vers" name="vers"
                            value="#{remoteDeployment.uploadedVersion}" placeholder="1.x.x.x"
                            maxlength="17" required="true"
                            requiredMessage="Version is required." />
                        <p:separator />
                        <p:fileUpload onstart="submitVersion()"
                            fileUploadListener="#{remoteDeployment.upload}" update="messages" >
                            <f:attribute name="terminalSettings" value="#{as}" />
                        </p:fileUpload>


                        <p:remoteCommand name="submitVersion" process="@this vers" />

                    </h:form>

用于输入文本的支持 bean 中的字符串:

@ViewScoped
    private String uploadedVersion;
    public String getUploadedVersion() {
        return uploadedVersion;
    }

    public void setUploadedVersion(String uploadedVersion) {
        this.uploade

请帮忙,如果有其他方法,请告诉我。

谢谢

【问题讨论】:

  • 用 onclick 改变 onstart 并告诉我是否有任何不同
  • @YagamiLight 不起作用。
  • 你尝试过 primefaces 网站上的经典文件上传方法吗?!?
  • @YagamiLight 是的,来自网站。
  • 我会发布对我有用的文件上传并告诉我是否有区别好吗?!?

标签: jsf input file-upload primefaces jsf-2


【解决方案1】:

您可以轻松解决问题 将 放在 textinput 标签之间就足够了

    <h:form enctype="multipart/form-data" id="uploadForm">
                    <p:growl id="messages" showDetail="true" />
                    <p:outputLabel for="vers" value="File Version:" />
                    <p:inputText id="vers" name="vers"
                        value="#{remoteDeployment.uploadedVersion}" 
               placeholder="1.x.x.x"  maxlength="17" required="true"  requiredMessage="Version is required.">    
 <p:ajax />
    </p:inputtext>
                    <p:separator />
                    <p:fileUpload onstart="submitVersion()"
                        fileUploadListener="#{remoteDeployment.upload}" update="messages" >          
                    </p:fileUpload>
                </h:form>    

【讨论】:

    【解决方案2】:

    这对我有用。

    <h:form enctype="multipart/form-data" id="uploadForm">
        <p:growl id="messages" showDetail="true"/>
        <p:outputLabel for="vers" value="File Version:"/>
        <p:inputText id="vers" name="vers"
                     value="#{remoteDeployment.uploadedVersion}" placeholder="1.x.x.x"
                     maxlength="17" required="true"
                     requiredMessage="Version is required."/>
        <p:separator/>
        <p:fileUpload fileUploadListener="#{remoteDeployment.upload}" update="messages">
            <f:attribute name="terminalSettings" value="#{as}" oncomplete="$('#uploadForm').submit()"/>
        </p:fileUpload>
    
    </h:form>
    

    【讨论】:

    • 它不是我问题的答案,而是一种解决方法。我现在接受它作为答案。
    • @Talib 我在没有命令按钮的情况下更新了您的要求的答案。您可以使用 PF 命令在 fileupload oncomplete 中提交表单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多