【问题标题】:when I add a file uploader in wicket form , the form disapear after submit当我以检票口形式添加文件上传时,提交后表单消失
【发布时间】:2016-09-27 23:40:00
【问题描述】:

当我在检票口表单中添加文件上传器时,提交后表单消失,而是出现一个空白页面。当我评论文件上传器字段时,一切正常。 感谢您的帮助

在 adduserPanel 中我调用 UserClassPanel :

    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);

在 UserClassPanel.html 中:

<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,它以上层形式提交所有其他字段。

【问题讨论】:

  • 您的服务器日志中是否有任何错误?
  • 没有任何错误,即使我调试项目一切正常。

标签: java html forms file-upload wicket


【解决方案1】:

我改变了我的脚本,所以这个事件发生了。

@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 行是因为我删除了位置选择,我认为没有问题。顺便说一句,现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多