Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 Spring SimpleFormController onSubmit请求参数_Java_Spring_Spring Mvc - Fatal编程技术网

Java Spring SimpleFormController onSubmit请求参数

Java Spring SimpleFormController onSubmit请求参数,java,spring,spring-mvc,Java,Spring,Spring Mvc,我在应用程序中使用SimpleFormController来处理表单提交。我缺少的一件事是在submit(request,response…)上传递的request对象 与formBackingObject(..)接收的初始请求对象不同。可能是因为它又是来自web的新请求 我只想使用onSubmit(..)中的request对象中的相同参数,我可以在formBackingObject(..)中访问这些参数 我可以将它们存储在jsp中并从jsp传递隐藏字段,但我正在尝试一些优雅的方法 有没有办法做

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

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

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

有没有办法做到这一点

编辑:

我压倒一切

formBackingObject(HttpServletRequest request)`  

方法在我的课堂上

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

我想问的是,有没有什么方法可以保持 初始“请求” 参数(
request.getParameter()
kind 当然…)这样我就可以在
onSubmit(..)
不发送
通过隐藏字段来回?

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

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

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

HttpSession session = request.getSession();
session.setAttribute("param1", request.getParameter("param1"));
session.setAttribute("param2", request.getParameter("param2"));
HttpSession session = request.getSession();
String param1 = (String) session.getAttribute("param1");
String param2 = (String) session.getAttribute("param2");
在您的
onSubmit()
方法中:

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

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

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

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

HttpSession session = request.getSession();
session.setAttribute("param1", request.getParameter("param1"));
session.setAttribute("param2", request.getParameter("param2"));
HttpSession session = request.getSession();
String param1 = (String) session.getAttribute("param1");
String param2 = (String) session.getAttribute("param2");
在您的
onSubmit()
方法中:

HttpSession session = request.getSession();
session.setAttribute("param1", request.getParameter("param1"));
session.setAttribute("param2", request.getParameter("param2"));
HttpSession session = request.getSession();
String param1 = (String) session.getAttribute("param1");
String param2 = (String) session.getAttribute("param2");
formBackingObject()
应在下次提交时设置提供给
onSubmit()
的“命令”对象。命令对象只是一个可以根据需要创建和添加属性的对象

通常,您使用服务调用(最终来自数据库)中的一些数据来填充命令对象,以显示在屏幕上,但是没有什么可以阻止您将请求中到达的数据放入
formBackingObject()
命令对象中,并在调用
onSubmit()
时再次将其拉回。这样做的好处是,您不会在会话中四处游荡

例如,将请求中的布尔值放入
MyCommand
formBackingObject()
中:

然后在
onSubmit()
中的请求中找到该布尔值:

请注意,myCommand仅对会话可见(因此其他登录用户无法看到它,并且在会话结束时它将被销毁)。

formBackingObject()
将在下次提交时设置提供给
onSubmit()
的“命令”对象。命令对象只是一个可以根据需要创建和添加属性的对象

通常,您使用服务调用(最终来自数据库)中的一些数据来填充命令对象,以显示在屏幕上,但是没有什么可以阻止您将请求中到达的数据放入
formBackingObject()
命令对象中,并在调用
onSubmit()
时再次将其拉回。这样做的好处是,您不会在会话中四处游荡

例如,将请求中的布尔值放入
MyCommand
formBackingObject()
中:

然后在
onSubmit()
中的请求中找到该布尔值:


请注意,myCommand仅对会话可见(因此其他登录用户无法看到它,并且在会话结束时会被销毁)。

他使用的是spring MVC@sangram-提供更多详细信息-发生了什么,何时提交,您的页面编辑了什么,等等。我想使用调用formBacking()时收到的onSubmit()中的参数字符串。我在formBacking和onSubmit中都有请求对象。但它们是不同的(get&post)。我只是在检查是否有更简单的方法来保留初始请求的参数字符串,而不是使用隐藏字段将它们再次发送回onSubmit()。由
formBackingObject
返回的数据的范围是什么?它对所有用户都是通用的,对会话是通用的吗?这听起来像是SpringWebFlow的例子吗?你可以按照Shane的建议进行会话,或者你可以把第一个请求的值放到GET上的模型中,然后在POST上传递回来。他使用的是spring MVC@sangram-提供更多详细信息-发生了什么,何时提交,您的页面编辑了什么,等等。我想使用调用formBacking()时收到的onSubmit()中的参数字符串。我在formBacking和onSubmit中都有请求对象。但它们是不同的(get&post)。我只是在检查是否有更简单的方法来保留初始请求的参数字符串,而不是使用隐藏字段将它们再次发送回onSubmit()。由
formBackingObject
返回的数据的范围是什么?它对所有用户都是通用的,对会话是通用的吗?这听起来像是SpringWebFlow的例子吗?你可以