如何使用Java重新填充表单?

时间:2009-04-22 14:44:19

标签: java servlets

我有一个提交给servlet并使用doPost()方法处理的表单。提交表单后,用户将被带到另一个页面,其中包含“后退”按钮(而不是浏览器的后退按钮)。如果单击“后退”按钮,则表单应使用原始输入重新填充。我怎么能做到这一点?

5 个答案:

答案 0 :(得分:2)

您有责任保留信息并手动重新填充表单。您可以通过以下两种方式之一完成此操作:

  1. 要么将内容推送到 客户端并在何时阅读它 必要。
  2. 或者你可以保存 该客户端的表单数据 服务器空间。
  3. 我更喜欢后者创建一个表示表单数据的模型。处理表单时,您可以保存该客户端的副本。如果重新加载页面,您可以检查是否存在以前的模型。如果存在,则使用该数据填充表单。如果它不存在,您可以使用默认模型或空值。

    将您的内容收集到模型中还有其他优势,这将使您以后受益。例如,如果对表单进行更改并且“提交”和“清除”按钮附近有“撤消”按钮,则可以轻松恢复到上一个​​已知状态。要激活“撤消”按钮,您可以轻松完成:

    boolean isDirty = savedModel.equals(currentModel);
    

    使用布尔值启用/禁用“撤消”按钮,而不是使用大量的“if / else”语句来查看值是否已更改。更干净。

    Jeach!

答案 1 :(得分:0)

如果您使用javascript:history.back(),您的浏览器应自动为您处理。

答案 2 :(得分:0)

您必须跟上用户在表单中提交的数据。

您可以将数据放在网址,请求或会话中。

确保在将任何不安全字符放回表单时将其转义。

有很多网页框架可以让这类事情变得更容易。

StrutsStripes是我想到的两个。

答案 3 :(得分:0)

提交原始表单后,您有几个服务器端选项:

  1. 在会话中保留表单值,并使用“后退”操作;
  2. 中调用的表单填充它们
  3. 将表单值作为参数添加到“后退”操作网址,以便它们成为请求的一部分。

答案 4 :(得分:0)

如果用户提交表单,数据是否已放入数据库?如果是这样,只需查询数据库并重新填充表单......如果没有,请考虑将数据保存到数据库中。