1

PrimeFaces 3.5 でファイルをアップロードする前に、サーバー側の処理を行うことは可能ですか? p:inputTextファイルをアップロードする前に入力する必要がある要素がフォームに含まれているとします。何かイベント?

ビューは次のように見えます-

<h:form enctype="multipart/form-data">
    <p:inputText value="#{fileUploadController.name}" id="name" label="Name" />
    <p:inputText value="#{fileUploadController.about}" id="about" label="About" />
    <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
            mode="advanced" 
            update="messages"
            sizeLimit="100000" 
            allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

    <p:growl id="messages" showDetail="true"/>

</h:form>

ManagedBean は以下のとおりです。

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;

public class FileUploadController {

    private String name;
    private String about;
    //Getters & Setters

    public void beforeUpload(){
    if(getName().isEmpty()||getAbout().isEmpty())
        FacesMessage msg = new FacesMessage("Error", "Name or About cannot be empty");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void handleFileUpload(FileUploadEvent event) {
        FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }
}
4

2 に答える 2

3

<p:fileUpload/>アップロード操作が開始される前にバッキング Bean 操作を開始するためにonStart、コンポーネントと簡単に接続できるプロパティがあります。<p:remoteCommand/>

      <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
        mode="advanced" 
        onstart="startSomething();"
        update="messages"
        sizeLimit="100000" 
        allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

      <p:remoteCommand name="startSomething" action="#{bean.startSomething}"/>  
于 2013-04-19T06:58:42.180 に答える