gpt4 book ai didi

java - Spring SimpleFormController onSubmit请求参数

转载 作者:行者123 更新时间:2023-11-29 06:23:16 26 4
gpt4 key购买 nike

我在我的应用程序中使用 SimpleFormController 来处理表单提交。我缺少的一件事是传递的请求对象 onSubmit(request,response..)formBackingObject(..) 收到的初始请求对象不同。可能是因为它又是来自网络的新请求。

我只想在 onSubmit(..) 中使用请求对象中的相同参数,我可以在 formBackingObject(..) 中访问这些参数。

我可以将它们存储在 jsp 中并通过隐藏字段传递,但我正在尝试获得一些优雅的方法。

有什么办法可以实现吗?

编辑:

我正在重写

formBackingObject(HttpServletRequest request)`  

onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)

我类的方法。

对于初始 View formbackingObject(..) 将被调用并且我将从请求对象中获得一些变量然后如果用户提交表单 onSubmit(..)将被调用,然后我将有另一个请求对象,它与我在 formbackingObject(..) 中收到的对象不同。

我想问的是,有什么方法可以保持最初的“请求”参数(request.getParameter() 种类的...)这样我就可以在onSubmit(..) 不发送它们来回穿过隐藏的领域?'

最佳答案

当用户请求初始表单 View 时,将调用 formBackingObject() 方法。这是一个完全独立的 HTTP 请求,当用户提交表单时调用 onSubmit() 方法。

如果您想保存第一个 HTTP 请求的状态以便在第二个 HTTP 请求中可用,最好的选择可能是将其保存在 HTTP session 中。

例如:在您的 formBackingObject() 方法中:

HttpSession session = request.getSession();
session.setAttribute("param1", request.getParameter("param1"));
session.setAttribute("param2", request.getParameter("param2"));

并在您的 onSubmit() 方法中:

HttpSession session = request.getSession();
String param1 = (String) session.getAttribute("param1");
String param2 = (String) session.getAttribute("param2");

关于java - Spring SimpleFormController onSubmit请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2130683/

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