Spring 3 MVC文件上传和表单验证,不会丢失文件

时间:2011-07-27 11:40:12

标签: java javascript spring jsp

Spring 3&是否有一个小框架? JSP允许对包含普通字段和文件上载的表单进行服务器端表单验证,这可以“拒绝”请求而不会丢失上传的文件?

更多细节: 我有一个HTML表单,其中包含正常输入字段和文件上载字段。此表单的验证是在服务器端完成的(在客户端进行复杂操作)。如果表单数据正确,则没有问题。 但是用户发送无效表单然后我需要再次显示表单,用户更正输入并再次发送表单。除了用户需要再次输入(并上传)文件这一事实外,它的工作正常。 - 解决方案一般很简单:我需要将文件存储在服务器端,然后如果用户再次发送更正的数据,则使用已上传的文件。 - 但即使它不是那么复杂,它也是很多工作,我不想重新发明轮子。

所以我的问题是,是否有任何实现此功能的小框架,我可以将其添加到我的应用程序中?

目前我使用:Spring 3.0,JSP,Dojo

1 个答案:

答案 0 :(得分:0)

您真正需要做的就是保存文件并将其与会话相关联,而不是依赖自动或注入的验证来拒绝请求,而不允许您先保存文件 - 程序验证。使用某种关联将文件保存到会话(或者用户,例如,如果使用Spring Security),以便将来可以在将来的请求中使用。

但是:所需的解决方案要求您建立一些文件的脱机清理。我有一个类似的情况,一个进程创建一个(永久)“临时”表。创建表时,我启动了一个使用@Async注释的表监视程序进程,该进程循环并使线程休眠一小时,检查该表是否仍然存在(在联机进程结束时将其删除)。如果表在一小时后仍然存在,则异步线程将删除它并退出。在您的情况下,您需要建立1)检查用户是否已完成该过程的内容,以及2)检查它的时间。