0

アップロードフィールドがあります。画像だけアップしたい。同じ検証を適用しました。しかし、エラーが発生した場合、フォームのフィードバックパネルにエラーを追加する必要があります。

UploadPanel.html

<form wicket:id="frmProduct" >
        <div wicket:id="feedback"></div>
        <label>Category1 *:</label><br/>
        <input type="text" wicket:id="Category1"><br/>
        <label>Category2 *:</label><br/>
        <input type="text" wicket:id="Category2"><br/>
        <label>ProductName *:</label><br/>
        <input type="text" wicket:id="ProductName"><br/>
        <label>TaxAmount *:</label><br/>
        <input type="text" wicket:id="TaxAmount"><br/>
        <label>UnitPrice *:</label><br/>
        <input type="text" wicket:id="UnitPrice"/><br/>
        <label>Description</label><br/>
        <textarea wicket:id="Description" id ="Description" rows="6" cols="20"></textarea><br/>
        <label>Description</label><br/>
        <input wicket:id="uploadField" size="40" type="file"/><br/>
        <input type="submit" wicket:id="submit" value="Save"/>
</form>

UploadPanel.java

                    if(uploadField.getFileUpload() != null && uploadField.getFileUpload().getClientFileName() != null){
                    FileUpload upload = uploadField.getFileUpload();
                    String ct = upload.getContentType();

                    if (!imgctypes.containsKey(ct)) {
                        hasError = true;
                    }

                    if(upload.getSize() > maximagesize){
                        hasError = true;
                    }

                    if(hasError == false){
                        System.out.println("######################## Image can be uploaded ################");
                        imageEntry.setContentType(upload.getContentType());
                        imageEntry.setImageName(upload.getClientFileName());
                        imageEntry.setImageSize(upload.getSize());
                        if(imageEntry != null){
                            try {
                                save(imageEntry,upload.getInputStream());
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }else{
                        target.appendJavaScript("$().toastmessage('showNoticeToast','Please select a valid image!!')");
                        System.out.println("#################### Error in image uploading ###################");
                    }
                }else{
                    System.out.println("########################### Image not Selected #####################");
                }

ヘルプやアドバイスをいただければ幸いです。前もって感謝します。

4

1 に答える 1

2

FileUploadFieldはフォーム コンポーネントであるため、単純

fileUploadField.error("error with file upload");

PS:代わりに

if(hasError == false)

する

if (!hasError)

そのより良い:)

于 2012-12-22T10:21:51.540 に答える