如何从MVC控制器方法中的HTTP Post方法中提取数据?

时间:2013-02-21 19:45:18

标签: javascript spring-mvc

我正在尝试为我们正在构建的网页实现一些客户端日志记录。这个想法是客户端的一些特定错误事件,当某些关键信息没有从服务器端返回时(页面上的信息是从多个服务聚合的),就会发生这种情况。

在我的客户端Javascript,我有:

$.ajax({
  url: 'MyURL',
  type: 'POST',
  data: 'MyErrorMessage',
});

在我的服务器端控制器上,我希望:

@RequestMapping(value = "MyURL", method = RequestMethod.POST)
protected ModelAndView logErrorMessages(String errorMessage)
{
     /* Log the error message using the server side logging framework */
}

现在,我不确定如何访问控制器中的错误消息字符串。我尝试了上面的方法,字符串是' null'。我考虑的另一种方法是将错误消息字符串作为@RequestParam放入请求URL,如下所示:here。 但是我对此感到有点狡猾,因为我觉得消息不应该真正成为URL参数的一部分。我确信我错过了一些非常明显的东西(比如创建一个错误消息对象作为' Model'或类似的东西的一部分),但我的问题是我是MVC和Web开发世界的新手并且没有查看模型/视图代码,只有'控制器'码。任何能让我走上正轨的提示都非常受欢迎。

1 个答案:

答案 0 :(得分:0)

使用@ModelAttribute注释:

客户端

数据:“错误='系统错误'” ...

服务器端

logErrorMessage(@ModelAttribute(name =“error”)String errorMessage ...