4

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

4

3 回答 3

1

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

于 2009-08-04T19:20:30.943 回答
1

作为一个旧问题的更新,现在似乎有可能:

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

于 2014-03-20T17:40:57.477 回答
0

这种方法对我来说适用于完整的 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>
于 2011-04-14T17:19:14.550 回答