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");
}
});
我在表单上有一个 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");
}
});