在GWT中使用servlet上传文件时,如何避免URL更改?
我可以选择在我的webapp中上传文件,我已经完成了,但是有一个问题:上传完成后,浏览器会将我重定向到“base_url”+在在GWT中使用servlet上传文件时,如何避免URL更改?,gwt,servlets,file-upload,smartgwt,Gwt,Servlets,File Upload,Smartgwt,我可以选择在我的webapp中上传文件,我已经完成了,但是有一个问题:上传完成后,浏览器会将我重定向到“base_url”+在web.xml文件中定义的url模式。我知道这应该是正常的,因为我正在标记中定义它。但是,我希望我的webapp保持在当前的url中,我如何才能做到这一点 <servlet-name>uploadServlet</servlet-name> <servlet-class>com.premium.server.FileUplo
web.xml
文件中定义的url模式。我知道这应该是正常的,因为我正在
标记中定义它。但是,我希望我的webapp保持在当前的url中,我如何才能做到这一点
<servlet-name>uploadServlet</servlet-name>
<servlet-class>com.premium.server.FileUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>uploadServlet</servlet-name>
<url-pattern>/Project/upload</url-pattern>
</servlet-mapping>
根据SmartGWT的文档,这是预期的行为: 不使用智能GWT服务器上传 如果可以接受应用程序在上载完成后重新加载整个页面,您可以简单地:
- 将编码设置为“多部分”
- 包含UploadItem以获取基本HTML上载控件
- 将操作设置为已部署服务器端代码以处理上载的URL
- 调用DynamicForm.submitForm以提交表单
注意:GWT自带的
FormPanel
小部件默认为后台上传。这不是正常行为(除非SmartGWT认为应该这样)。你能为上传文件的表单显示你的代码吗?@ThomasBroyer嗯,我想这是正常的,因为标签的名字。在那里你可以看到代码。提前非常感谢。我正在使用SmartGWT的LGPL版本,所以我认为我不能使用该功能。我将尝试一下GWT的FormPanel
。你在说什么“功能”?我引用了没有智能GWT服务器的部分。对不起,我误读了。我要试试后台上传。
private static final String UPLOAD_ACTION_URL = GWT.getModuleBaseURL() + "upload";
public void onModuleLoad() {
final DynamicForm form = new DynamicForm();
form.setAction(UPLOAD_ACTION_URL);
form.setEncoding(Encoding.MULTIPART);
form.setMethod(FormMethod.POST);
SubmitItem submit = new SubmitItem("a", "Submit");
submit.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
form.submitForm();
}
});
UploadItem upload = new UploadItem();
upload.setName("uploadFormElement");
form.setFields(upload, submit);
VLayout panel = new VLayout();
panel.addMember(form);
RootPanel.get().add(form);