Wicket fileUploadField.getFileUpload在AjaxBehaviour上返回null

时间:2014-02-05 11:41:57

标签: wicket onchange

我试图从wicket中'onChange'事件的fileupload字段获取FileUpload。 但是在选择文件后它始终为null。我的代码看起来像这样,

fileUploadField.add(new AjaxEventBehavior("onChange") {
    @Override
    protected void onEvent(AjaxRequestTarget target) {
        FileUpload fileUpload = fileUploadField.getFileUpload();
        if(fileUpload!=null) {
            //my code
        }
    }
}

我也尝试过使用AjaxFormComponentUpdatingBehavior(“onChange”)。

请帮帮我。

1 个答案:

答案 0 :(得分:2)

使用AJAX调用FileUpload实际上是空的,因为文件上传正在按照以下步骤进行处理。

  1. 在表单字段中选择文件
  2. 使用HTTP POST请求发布表单
  3. 在服务器端接收HTTP POST请求
  4. 将请求解析为FileUpload
  5. 如果您只是在文件输入字段上添加onChange ajax事件,它只会对URL产生GET请求,但不会发送表单数据。

    您可以尝试使用OnChangeAjaxBehavior或AjaxButton,如http://www.wicket-library.com/wicket-examples/ajax/upload上的示例所示