我有一个提交给servlet并使用doPost()方法处理的表单。提交表单后,用户将被带到另一个页面,其中包含“后退”按钮(而不是浏览器的后退按钮)。如果单击“后退”按钮,则表单应使用原始输入重新填充。我怎么能做到这一点?
答案 0 :(得分:2)
您有责任保留信息并手动重新填充表单。您可以通过以下两种方式之一完成此操作:
我更喜欢后者创建一个表示表单数据的模型。处理表单时,您可以保存该客户端的副本。如果重新加载页面,您可以检查是否存在以前的模型。如果存在,则使用该数据填充表单。如果它不存在,您可以使用默认模型或空值。
将您的内容收集到模型中还有其他优势,这将使您以后受益。例如,如果对表单进行更改并且“提交”和“清除”按钮附近有“撤消”按钮,则可以轻松恢复到上一个已知状态。要激活“撤消”按钮,您可以轻松完成:
boolean isDirty = savedModel.equals(currentModel);
使用布尔值启用/禁用“撤消”按钮,而不是使用大量的“if / else”语句来查看值是否已更改。更干净。
Jeach!
答案 1 :(得分:0)
如果您使用javascript:history.back(),您的浏览器应自动为您处理。
答案 2 :(得分:0)
您必须跟上用户在表单中提交的数据。
您可以将数据放在网址,请求或会话中。
确保在将任何不安全字符放回表单时将其转义。
有很多网页框架可以让这类事情变得更容易。
答案 3 :(得分:0)
提交原始表单后,您有几个服务器端选项:
答案 4 :(得分:0)
如果用户提交表单,数据是否已放入数据库?如果是这样,只需查询数据库并重新填充表单......如果没有,请考虑将数据保存到数据库中。