0

データを保存するための jsf フォームがあります。このフォームには、アップロードするファイルごとに、primefaces の fileuploaded コンポーネントがあり、特定の説明があります。私はこの操作にイベントリスナーを使用しています。私の要件は、説明を追加せずにファイルをアップロードするときに、「説明を追加してください」という検証メッセージを表示する必要があることをユーザーに制限したいということですが、このプロセスは前に行う必要がありますフォーム全体を送信します。

ソースコード:

<h:panelGrid id="ff" columns="2" cellpadding="8">

                    <p:outputLabel for="file" value="Description:" styleClass="label"
                                style="font-weight:bold" />
                            <p:inputTextarea rows="5" cols="30" id="file"
                                value="#{manageProject.desc}" required="true"
                                requiredMessage="Please enter the File desccription" styleClass="input"
                                counterTemplate="{0} characters remaining." autoResize="false" >
                                <p:ajax listener="#{manageProject.handlefiles()}"></p:ajax>
                                </p:inputTextarea>
                    </h:panelGrid>

                        <p:fileUpload 
                            fileUploadListener="#{manageProject.handleFileUpload}"
                            mode="advanced" dragDropSupport="false" multiple="false"  update="ff"
                            sizeLimit="5242880" fileLimit="3" invalidSizeMessage="maximum file size should be 5mb"
                             >

                            </p:fileUpload> 

Bean クラス:

public void handleFileUpload(FileUploadEvent event) { 

        docs=new Docs();

        try {

                byte[] data = new byte[(int) event.getFile().getSize()
                                        ];
            inputStreams = event.getFile().getInputstream();

                                        inputStreams.read(data);
                                        docs.setImage(data);
                                        docs.setName(event.getFile().getFileName());
                                        System.out.println("desc="+desc);
                                        docs.setDesc(desc);
                                        docses.add(docs);                       
                                         FacesMessage msg = new FacesMessage(event.getFile().getFileName()+" "+"has been uploaded.");  
                                            FacesContext.getCurrentInstance().addMessage(null, msg); 
        }
4

0 に答える 0