为保值 与Spring MVC(Preserving value for <form:i

2019-07-22 01:25发布

我有两个输入的形式:一个字符串,一个文件。

<form:form ...>
  <form:input type="text" ....>
  <form:input type="file" ....>
</form:form>

如果验证的字符串输入失败,则控制器路由回这个相同的观点。 当发生这种情况,该字符串字段被保留,但所选择的文件丢失。

有没有办法保存时选择视图进行重新渲染的文件?

认为答案是否定的-并且它是内在的HTML文件输入,而不是服务器端框架。 如果问有我丢失的东西。

Answer 1:

这是事实,文件输入值不能被保留。 那只是因为它在所有浏览器中实现。 至于我可以告诉它有潜在的安全风险的事,但我从来没有更深。

有一种可能性,以实现类似的东西虽然。 这是我们在我们的项目做的:

  • 与文件上传每种形式都有,不会只要输入无效,改变UUID。
  • 我们使用FineUploader期间上传到一个文件夹与此UUID作为文件夹名称,这些编辑阶段(县)asynchronosly上传文件
  • 我们维持隐藏的输入(文本)与当前的上传引用
  • 如果不bindingresult错误,我们处理的文件中的方法和我们的onComplete删除上传的文件夹
  • 如果有错误,我们保留UUID到位,并保持输入字段,所以我们不松引用。

这个工作现在稳定,作为一个很好的副作用控制在某种程度上更容易,在我眼里也吸尘器来写,因为我们不再需要多为这些形式和另一个控制器只处理上传。

编辑: - 你可能想实现一个cronjob清除abandonned上传!



文章来源: Preserving value for with Spring MVC