gpt4 book ai didi

java - DIY 表单处理、PRG、验证

转载 作者:行者123 更新时间:2023-12-04 07:03:48 27 4
gpt4 key购买 nike

我想为 Web 应用程序实现表单处理。我想实现 PRG (post-redirect-get),因为我相信这是表单处理的方式(与重新加载和后退按钮一起玩得很好)。但是,我看到它使验证复杂化。

基本上,当您发布时,您拥有表单状态(作为发布参数)。但是,如果您验证并重定向回表单,您将丢失表单状态(您的重定向是 GET;您可以在 GET 中编码所有表单参数,但由于 URL 长度限制,这并不总是可行的。此外,它看起来丑得要命)。

我正在考虑以下问题:

  • 用户在表单 View ( /addUserDetails.html )
  • POST 到操作 url ( /addUser )
  • /addUser执行相关操作。如果失败,它将存储表单状态,为其分配一个 id 并重定向到表单 View ,将 id 作为获取参数( /addUserDetails.html?state=2313ab2 )
  • View 验证状态并显示相关信息

  • 根据您存储表单状态的方式,您还可以让用户继续处理表单,即使他们的浏览器崩溃或发生了一些不好的事情。

    想法?另外,是否有任何 Java Web 框架可以执行此操作或可以强制执行此操作?

    最佳答案

    您不必保留重定向 URL 中的所有状态。我这样做与您的方法略有不同,它对我们的用例非常有用。

    如果表单未通过验证,我不会重定向。我只是用输入的值重新填充表单并突出显示错误,这正是没有 PRG 时您会做的事情。只有当 POST 成功时,我才会将浏览器重定向到 GET 页面。就您而言,您只需要在 URL 中包含用户名,就可以显示个性化的欢迎页面。

    是的,我们会在失败的表单上重复提交,但这对我们的用例来说更可取。当用户导航回表单时,他们将再次收到错误并继续工作。由于验证,没有双重提交,这是我们唯一要避免的事情。

    关于java - DIY 表单处理、PRG、验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1414707/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com