我有一张表格可以放在一页上,但出于审美原因,我想分成两部分。提交时的原始表单将转到Servlet,它将获取表单数据并将其插入数据库。但是,当它在两个不同的页面上分成两种不同的形式时,我不知道如何使这项工作。我的表单目前是html,但如果是解决方案,我可以将它们更改为JSP。我不想使用隐藏的字段;如果在没有隐藏字段的情况下无法做到这一点,那么我将把它放在一个页面上,因为我的表单有很多字段,而隐藏字段意味着基本上加倍代码量。我也只想在表单中使用html或jsp;我不想使用JavaBeans,我想避免在jsp中编写脚本。我已经通过简单地将数据库逻辑分成两部分并使用最后插入的对象的ID作为隐藏字段来完成此操作,然后第二个表单使用该ID来更新该项目,但这不是一个优雅的解决方案,可能会导致如果一个用户提交了第一个表单而另一个用户提交了第二个表单(错误的项目将被更新),则会出现问题。这可能吗?
答案 0 :(得分:0)
嗯,这是Session可用于的事情之一:将数据存储在HttpSession的第一页中,然后在第二页中检索会话数据并将其保存到数据库中。
答案 1 :(得分:0)
您可以使用javascript分页(它会节省页面加载时间。许多在线测试应用程序采用这种方法) a)在提交表单数据的每一部分时,将使用ajax调用发送到服务器。(部分提交) b)或者整个数据仅在客户端维护,直到整个表格完成并成功提交。 (取决于您的申请需要)
您可以在逻辑上将表单的每个部分与一些唯一的ID&会话ID组合。此外,如果您不愿意/需要在会话中存储整个表单数据,则可以在会话中使用主键。它将使表单数据的第二部分或下一部分更容易进行数据库更新过程。