Spring:来自HttpServletRequest的访问参数返回null

时间:2015-08-18 09:21:00

标签: java spring servlets

我的控制器中有一个POST方法应该从AJAX POST创建一个新的对象。

我创建了一个工厂方法,它将从HttpServletRequest填充对象。但是,在提交请求时,工厂方法因处理请求对象中的参数时NullPointerException而失败。

我已经查看了Stackoverflow上的几篇文章,似乎无法找到我的代码有问题。通常的建议似乎是我只需要在我的签名中添加HttpServletRequest,Spring就会自动连接该对象。

它确实创建了一个请求对象,但创建的请求不包含任何参数。

@RestController
@RequestMapping("/lead")
@ComponentScan(basePackages = { "ch.company.app.backend" })
public class EventLeadController {
  @Autowired
  EventLeadRepository leadRepository;

  @RequestMapping(value = "/", method = RequestMethod.POST, headers = "content-type=application/x-www-form-urlencoded")
  public void saveLead(HttpServletRequest request) {
    System.out.println("Country: " + request.getParameter("country")); // returns "Country: null"
    EventLeadFactory leadFactory = new EventLeadFactory();

    EventLead lead = leadFactory.createFromHttpServletRequest(request);

    leadRepository.save(lead);
  };
}

1 个答案:

答案 0 :(得分:0)

请使用@RequestBody注释。 例如:

public void saveLead(@RequestBody Model model)