我需要根据请求参数“类型”填充我的 pojo 类。所以我有类似的代码
@ModelAttribute
public void getModelObject(HttpServletRequest request, ModelMap modelMap) {
String typeCombo = request.getParameter("type");
System.out.println("typeCombo: " + typeCombo);
if (typeCombo != null) {
if (condition) {
modelMap.addAttribute("modelObj", new ClassB()); //ClassB extends ClassA
} else if (another condition) {
modelMap.addAttribute("modelObj", new ClassC()); //ClassC extends ClassA
} else {
System.out.println("no type found");
}
} else {
System.out.println("typecombo null");
}
}
我使用上述方法来创建正确的子类,这些子类将用于添加/更新。在“POST”的情况下,上面的工作正常 - 用于创建记录。但是对于“PUT”,request.getParameter("type") 总是返回 null。因此,对于编辑,我无法获得正确的子类。
以下是我的帖子和请求映射:
@RequestMapping(value = "", method = RequestMethod.POST, headers = "Accept=*/*")
@ResponseBody
public String addCredentials(@ModelAttribute("modelObj") Credential credential,
ModelMap modelMap) {
//code
}
@RequestMapping(value = "/edit/{id}", method = RequestMethod.PUT, headers = "Accept=*/*")
@ResponseBody
public Credential editCredential(@ModelAttribute ("modelObj") Credential credential, @PathVariable long id, ModelMap model) {
//代码 }
任何帮助深表感谢。