【问题标题】:how to retain an input of type file in an JSP page on page reload如何在页面重新加载时在 JSP 页面中保留类型文件的输入
【发布时间】:2020-12-17 13:04:56
【问题描述】:

How can I retain HTML form field values in JSP after submitting form to Servlet?

我试图在 jsp 中保留一个 csv 文件,但看起来不可能。我还尝试将 csv 文件传递​​回 jsp 并将其作为表单的一部分发送回控制器,但无法执行此操作。所以请建议一种方法来保留 csv 文件或将其重定向回 jsp 并能够在页面第二次重新加载时使用

我做了一些研究,得出的结论是不可能保留 csv 文件类型的输入字段。如果我错了,请纠正我

回答:据我所知,一旦提交表单,就不可能按照https://stackoverflow.com/questions/2598904/how-do-i-keep-form-data-after-submitting-the-form-using-javascript#:~:text=To%20keep%20the%20values%2C%20you,request%20parameters%20into%20the%20fields.&text=You%20can%20use%20cookies%20from,you%20access%20something%20called%20document. 回答中的建议将整个页面替换为来自服务器的响应,以便保留 csv 文件值,我认为我们只能使用jQuery.post 或 jQuery.ajax 发送表单数据而不是实际提交表单

【问题讨论】:

  • 如果是文本,那么你可以,但对于你不能做的文件。原因check在这里。
  • 谢谢你

标签: spring-mvc jsp


【解决方案1】:

如果您想保留从 jsp 传递的任何内容并在后端使用它,您可以做一件事。一旦传递给控制器​​,我们就可以读取 csv 文件的数据并使用 .setAttribute("object name", object) 在会话中设置该对象。可以使用以下代码行获取会话对象并设置对象

HttpSession session = request.getSession(); 
session.removeAttribute("<object name>");
session.setAttribute("<object name>", object);

并在控件第二次使用 getAttribute() 从 jsp 移动到控制器时使用此对象

<className> <objectName> = session.getAttribute("<object name>");

并根据需要使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    相关资源
    最近更新 更多