我的控制器中有一個POST方法,它應該從AJAX POST創建一個新的Object。Spring:從HttpServletRequest訪問參數返回null
我創建了一個工廠方法,它將從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);
};
}
你需要包括代碼構造POST –
你試過公共無效saveLead(@RequestBody ModelClass模型)??(JavaScript的?) –
@AmitMishra這將意味着我不再需要Factory類,對吧?相反,我將不得不提出一個映射到實際Java類的JSON請求,還是我誤解了某些內容?無論如何直接訪問當前請求的'HttpServletRequest'? – Ahatius