【问题标题】:Upload a file AJAX-ically using Wicket使用 Wicket 以 AJAX 方式上传文件
【发布时间】:2010-11-16 16:23:42
【问题描述】:

我想在 Wicket 中使用 AJAX 上传文件。在我看来,Wicket 不支持此功能。有可能吗?

【问题讨论】:

    标签: java ajax file-upload wicket


    【解决方案1】:

    查看 Wicket 示例中的源代码以进行上传:http://www.wicketstuff.org/wicket13/upload/single。它有标准版本和 ajax 版本的示例。

    【讨论】:

    • 只有ajax进度条,不完全是ajax
    • 你是对的,我误解了你的问题。目前,它不能用核心检票口库完成,但已被写为一个问题,cwiki.apache.org/jira/browse/WICKET-1315。该问题指向一个示例,该示例通过 iFrame 使用 Wicket 完成,blog.demay-fr.net/index.php/2007/12/07/…
    • 更新:WICKET-1315 作为WICKET-2420 的骗子已被关闭。
    • 我听说正在对此进行改进,但我最近没有看过。我以为它会出现在 1.4 中,但如果问题仍然存在,我想不会......
    • 链接返回404状态。
    【解决方案2】:

    作为一个老问题的更新,现在看来是可能的:

    http://www.wicket-library.com/wicket-examples/ajax/upload

    【讨论】:

      【解决方案3】:

      这种方法对我来说适用于完整的 Ajax wicket 应用程序。 抱歉,这是 Scala 语法,但应该可以轻松转换回 Java 语法:

      import java.io.File
      import org.apache.wicket.markup.html.form.upload.FileUploadField
      import org.apache.wicket.markup.html.form.Form
      import org.apache.wicket.markup.html.WebPage
      import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink
      import org.apache.wicket.ajax.AjaxRequestTarget
      
      class TestPage extends WebPage {
          val uploadForm = new Form("form")
          val fileField = new FileUploadField("file")
      
          uploadForm.add(fileField)
          add(form)
      
          add(new AjaxSubmitLink("submit", uploadForm) {
              def onSubmit(target: AjaxRequestTarget, form: Form[_]) {
                  val upload = fileField.getFileUpload
                  if (upload != null) {
                      val file: File = upload.writeToTempFile
                  }
              }
          })
      }
      

      HTML:

      <!DOCTYPE html>
      <html xmlns="http://www.w3.org/1999/xhtml"
            xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
      <body>
      
      <form wicket:id="form">
          <input wicket:id="file" type="file"/>
      </form>
      <button wicket:id="submit">Upload</button>
      
      </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 2021-09-14
        相关资源
        最近更新 更多