Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java重新填充表单?_Java_Servlets - Fatal编程技术网

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

如何使用Java重新填充表单?,java,servlets,Java,Servlets,我有一个表单正在提交到servlet,并使用doPost()方法进行处理。提交表单后,用户将使用“后退”按钮(而不是浏览器的后退按钮)转到另一个页面。如果单击“后退”按钮,表单应重新填充原始输入。我怎样才能做到这一点 如果您使用javascript:history.back(),您的浏览器应该自动为您处理这些信息。您有责任保留信息并手动重新填充表单。您可以通过以下两种方式之一执行此操作: 要么将内容推送到 客户端,并在 必要的 或者你可以保存 中该客户端的表单数据 服务器空间 我更喜欢后者,创建

我有一个表单正在提交到servlet,并使用doPost()方法进行处理。提交表单后,用户将使用“后退”按钮(而不是浏览器的后退按钮)转到另一个页面。如果单击“后退”按钮,表单应重新填充原始输入。我怎样才能做到这一点

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

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

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

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

    boolean isDirty = savedModel.equals(currentModel);
    
    并使用布尔值启用/禁用“撤消”按钮,而不是使用大量的“if/else”语句来查看值是否已更改。干净多了


    杰赫

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

    您可以将该数据放在url、请求或会话中的

    确保在将不安全的字符放回表单中时将其转义

    有很多web框架使得这类事情更容易做


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

  • 在会话中保留表单值,并使用从“返回”操作调用的表单填充它们
  • 将表单值作为参数添加到“返回”操作url,以便它们成为请求的一部分

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

    这将触发浏览器关于重新提交POST数据的警告。不会的。你不会再加载当前页面,而是加载上一个页面,它不是使用POST从服务器检索到的。当我第一次阅读标题时,我想它说“我如何从使用Java中恢复过来”