2016-05-30 7 views
-1

wicket形式のファイルアップローダーを追加すると、フォームはサブミット後に消滅し、代わりに空白のページが表示されます。私はファイルのアップローダーのフィールドをコメントするときはすべてのものが大丈夫です。wicket形式のファイルアップローダーを追加すると、提出後にフォームが消えます。

<form wicket:id="upoadfileWMC" class="form-group"> 
    <!--<div wicket:id="upoadfileWMC" class="form-group">--> 
    <label dir="rtl" class="col-md-2 col-md-offset-1 control-label">بارگذاری کارت ملی</label> 
    <div class="col-md-5"> 
     <input dir="rtl" wicket:id="fileUpload" type="file" class="form-control" id="choose-file" style="animation-fill-mode: both" required/> 
     <button wicket:id="upload" dir="rtl" type="submit" class="btn btn-success btn-lg btn-block">بارگذاری فایل</button> 
     <span class="help-block with-errors" wicket:id="fileUploadfdk"></span> 
    </div> 
    <!--</div>--> 
    <div wicket:id="feedback"></div> 
</form> 

とaddUserPanel.javaに私は他のすべてのフィールドを提出AjaxSubmitLinkを設定します。UserClassPanel.htmlで

uploadfileForm = new Form("upoadfileWMC"); 
    uploadfileForm.setOutputMarkupId(true); 
    uploadfileForm.setMultiPart(true); 
    uploadfileForm.setMaxSize(Bytes.kilobytes(500)); 
    add(uploadfileForm); 
    uploadfileForm.setMultiPart(true); 
    add(uploadfileForm); 
    fileUploadField = new FileUploadField("fileUpload"); 
    if (userClass.getdBId() == null) { 
     fileUploadField.setRequired(true); 
    } 
    fileUploadField.setOutputMarkupId(true); 
    fileUploadField.setLabel(Model.of("بارگذاری کارت ملی")); 
    fileUploadField.add(new BootstrapErrorAppender(fileUploadField)); 
    final FeedbackPanel fileUploadfdk = new FeedbackPanel("fileUploadfdk", new ComponentFeedbackMessageFilter(fileUploadField)); 
    fileUploadfdk.setOutputMarkupId(true); 
    uploadfileForm.add(fileUploadfdk); 
    uploadfileForm.add(fileUploadField); 

    AjaxSubmitLink upload = new AjaxSubmitLink("upload", uploadfileForm) { 

     @Override 
     protected void onError(AjaxRequestTarget target, Form<?> form) { 
      target.add(uploadfileForm); 
      target.add(feedback); 
     } 

     @Override 
     protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 

      final FileUpload uploadedFile = fileUploadField.getFileUpload(); 
      try {  
      if (uploadedFile != null) { 
        // write to a new file 
        File newFile = new File(System.getProperty("java.io.tmpdir") + "/" + userClass.getMeliCode()); 
        if (newFile.exists()) { 
         newFile.delete(); 
        } 
        newFile.createNewFile(); 
        uploadedFile.writeTo(newFile); 
        info("کارت ملی بارگذاری شد"); 
       } 
      } catch (IOException ex) { 
       logger.warn("can't write upload file :‌ " + ex); 
       error("خطا در ذخیره سازی عکس"); 
      } 
      target.add(uploadfileForm); 
      target.add(feedback); 
     } 

    }; 
    uploadfileForm.add(upload); 


    feedback = new FeedbackPanel("feedback", new ComponentFeedbackMessageFilter(upload)); 
    feedback.setOutputMarkupId(true); 
    uploadfileForm.add(feedback); 

:adduserPanelであなたの助け

ため おかげで私はUserClassPanelを呼び出します上の形。

+0

サーバーログにエラーがありますか? –

+0

私はプロジェクトをデバッグしても何のエラーもなく、すべてのことがOKです。 –

答えて

0

このイベントが発生するようにスクリプトを変更します。

@Override 
public void renderHead(IHeaderResponse response) { 
    super.renderHead(response); 
    response.render(OnDomReadyHeaderItem.forScript("" 
      + "$(document).ready(function() { " 
      // + "  $(\"#" + locations.getMarkupId() + "\").select2({" 
      // + " language : \"fa\",dir:\"rtl\"});" 
      + "  $(\"#" + roles.getMarkupId() + "\").select2({" 
      + " language : \"fa\",dir:\"rtl\"});" 
      + " });")); 

} 

私は2行目のbeacause私は場所の選択を削除し、問題はないと思った。ところで、今は大丈夫です。

関連する問題