3

我在里面使用<p:fileUpload >PrimeFaces <h:inputText>。我面临的问题是,当我上传图像并添加图像标题时,图像已上传,但 inputText 值将包含 null,不映射到 bean。

图片上传的Jsf页面:

     <p:fileUpload id="imaload" fileUploadListener="#{ngoPhotoUpload.photoUpload}"  
                         mode="advanced"  multiple="true" 
                          update="messages" 
                           allowTypes="/(\.|\/)(gif|jpe?g|png)$/">
     <h:inputText value="#{ngoPhotoBean.description}"/>
     </p:fileUpload>

当我上传 ngoPhotoBean.description 时包含 null。我正在使用 primefaces 3.0 和 jsf 2.0。我该如何解决?

4

3 回答 3

9

使用fileUploadprocess属性,并将 FileUploadEvent 推送到 INVOKE_APPLICATION 阶段以查看 inputText 中的值#{ngoPhotoBean.description}

Xhtml:

<h:form>
    <p:fileUpload fileUploadListener="#{ngoPhotoUpload.photoUpload}" process="@form" update="@form" />
    <h:inputText value="#{ngoPhotoBean.description}" />
</h:form>

爪哇:

public void photoUpload(FileUploadEvent event) {
    if (!PhaseId.INVOKE_APPLICATION.equals(event.getPhaseId())) {
        event.setPhaseId(PhaseId.INVOKE_APPLICATION);
        event.queue();
    } else {
        //do stuff here, #{ngoPhotoBean.description} is set
    }
}
于 2012-06-13T09:58:00.270 回答
0

在那个primefaces p:remotecommand标签那里..您可以使用该标签传递参数。此链接可以帮助您..

如何在primefaces中的文件上传期间传递参数

于 2012-06-13T06:06:37.277 回答
0

有一个简单的方法可以解决它。只需将 <p:ajax /> 放在 <p:textinput> 和 </p:textinput> 之间

于 2021-06-12T15:47:35.290 回答