Java 防止表单操作在文件上载后更改URL

Java 防止表单操作在文件上载后更改URL,java,spring,Java,Spring,我在SpringMVC项目中有一个简单的表单,用于处理文件上传 form.jsp <form method="POST" enctype="multipart/form-data" action="/upload" id="form"> <input id="file" type="file" name="file"><br /> <input type="submit" value="Upload"> <input

我在SpringMVC项目中有一个简单的表单,用于处理文件上传

form.jsp

<form method="POST" enctype="multipart/form-data" action="/upload" id="form">
    <input id="file" type="file" name="file"><br />
    <input type="submit" value="Upload">
    <input type="reset" value="Reset">
</form>
是否可以仅阻止表单操作的重定向,但仍保留值
${context}/upload
,以便调用我的控制器方法?我需要我的页面返回到
myApp/form
,因为这个特定的url调用一个单独的控制器方法来检索一些数据


请注意,我不想将我的jsp文件重命名为“upload.jsp”,也不想发表AJAX文章(感谢IE9)。有什么想法吗?

找到了我在17.5.3上的确切案例的答案,从

有时需要将HTTP重定向发送回 客户端,在渲染视图之前。例如,这是可取的, 当使用POST数据调用一个控制器时 实际上是对另一个控制器的委托(例如在 成功递交表格)。在这种情况下,正常的内部正向 这意味着另一个控制器也将看到相同的POST数据, 如果可能会将其与其他文件混淆,则可能存在问题 预期数据

这可以通过以下方式完成:

return "redirect:/form";
重定向
的一个很好的好处是,它可以防止用户通过执行刷新来意外地重新发布相同的数据。刷新强制执行结果页的
获取
,而不是重新发送初始POST数据

更新:


默认的
重定向:/view
将把模型属性作为查询参数附加到URL中。在某些情况下,这可能是不可取的,因为它可能会向用户公开敏感信息。利用方法来存储Flash属性,这些属性将在从一个URL重定向到另一个URL(成功/失败消息等)时用于存储属性。

您解决了吗?我有同样的问题。
return "redirect:/form";