Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 3.0M4并将对象作为参数传递给POST_Java_Spring_Rest_Post_Parameters - Fatal编程技术网

Java Spring 3.0M4并将对象作为参数传递给POST

Java Spring 3.0M4并将对象作为参数传递给POST,java,spring,rest,post,parameters,Java,Spring,Rest,Post,Parameters,我很确定这一定在文档中的某个地方,但我已经找了好几天了,还没有发现它。当它就在我面前时,我可能是在盲目地盯着自己,所以很抱歉问了一个明显的问题,但是 @RequestMapping(method = RequestMethod.POST) public ModelAndView post(@ModelAttribute("user") User user) { ModelAndView mav = new ModelAndView(jsonView); //.... return m

我很确定这一定在文档中的某个地方,但我已经找了好几天了,还没有发现它。当它就在我面前时,我可能是在盲目地盯着自己,所以很抱歉问了一个明显的问题,但是

@RequestMapping(method = RequestMethod.POST)
public ModelAndView post(@ModelAttribute("user") User user) {
  ModelAndView mav = new ModelAndView(jsonView);
  //....
  return mav;
}
这是作为控制器一部分的POST函数,我想尝试一下。因此,我启动了Poster,Firefox REST测试仪,我用它来测试我的功能,并使用参数{firstname=“foo”,lastname=“bar}向它发送了一篇帖子

org.springframework.web.HttpSessionRequiredException: Session attribute 'user' required - not found in session
因此,我尝试使用{user.firstname=“foo”,user.lastname=“bar”},同样的错误。我需要在POST或PUT请求中发送哪些参数才能使用自动将参数映射到对象的机制

干杯

Nik

该注释将在会话中搜索名为“user”的属性,而您在POST中发送的参数将存储为请求的参数:

//Get a session attribute:  
request.getSession().getAttribute("user");

//Get a request parameter:
request.getParameter("firstname");

不需要对
用户
方法参数进行任何注释,Spring会将其识别为一个命令对象,并绑定到它而不使用注释


@modeldattribute
有点让人困惑,我发现,它的含义似乎在不同的情况下有所不同。

如果类中有
@SessionAttributes
注释,这种效果显然会发生。这导致Spring期望模型属性存储在会话中,来自先前的
GET
web请求,即将对象放入模型中

此行为允许将请求参数部分绑定到模型对象。工作流如下所示:

  • 您收到一个
    GET
    请求来填充模型
  • Spring将您在
    @SessionAttributes
    中按名称或类型配置的所有模型对象绑定到会话
  • 您收到一个带有更新数据的
    POST
    请求
  • Spring从会话中获取对象并将请求数据绑定到它们

  • Othwerise Spring将填充一个空的新对象,这绝大多数不是期望的行为。

    对,我想我要问的是:如何在我的REST请求中设置这个用户属性?或者“用户”只存在于服务器端会话中?啊哈!:-)这完全有道理,所以我误解了这一部分,并假设Spring将值映射到请求的对象,以便可以实例化或请求该对象。这便于“向导”过程