Wicket:访问 FileUploadFile 所选文件

Wicket: Accessing the FileUploadFile selected file

我在表单上有一个 FileUploadField。此组件将以下元素添加到 HTML

<input id="upload" type="file" name="fileUpload">

点击后,用户必须select一个文件。我想知道那个文件的名称是什么,紧跟在 selection 之后,这样我就可以在表单上设置其他组件的值。

我尝试将 "onChange" AjaxEvenBehaviour 附加到 FileUploadField,但在请求参数中看不到文件名。

    FileUploadField fileUpload = new FileUploadField("fileUpload");

    form.add(fileUpload);

    fileUpload.add(new AjaxEventBehavior("onChange") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            Request request = RequestCycle.get().getRequest();
            request.getRequestParameters();

        }

    });

有没有人成功做到这一点,你是怎么做到的?

您必须指示行为发送输入值:

fileUpload.add(new AjaxEventBehavior("change") {

    @Override
    protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
    {
        super.updateAjaxAttributes(attributes);

        String value = "return {'value': Wicket.$(attrs.c).value}";
        attributes.getDynamicExtraParameters().add(value);
    }

    @Override
    protected void onEvent(AjaxRequestTarget target) {
        Request request = RequestCycle.get().getRequest();

        request.getRequestParameters().getParameterValue("value");

    }

});