(@RequestParam  params) 、( CustBank c) 的区别?

出现问题:java.lang.IllegalArgumentException: Unknown entity: java.util.LinkedHashMap

错误:

@RequestMapping("/addData")

@RequiresPermissions("CUST_BANK:ADD")

public @ResponseBody String addData(@RequestParam Map<String, Object> params) {

try {

custBankService.saveCustBank(params);

catch (Exception e) {

e.printStackTrace();

return "0";

}

return "1";

}

改正:

@RequestMapping("/addData")

@RequiresPermissions("CUST_BANK:ADD")

public @ResponseBody String addData( CustBank c) {

try {

custBankService.saveEntity(c);

catch (Exception e) {

e.printStackTrace();

return "0";

}

return "1";

}

注:CustBank 是实体类

按照我的想法,添加的内容是从页面传来的,用@RequestParam,

但实际情况传的参数是custBank,想知道这两个有什么区别?分别都在上面情况下使用?为什么会出现上面描述的错误?

期待您的回答。

谢谢!

 

为啥作为实体类你的接收参数名为C,到用注解接收时是param

Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值,

所以对象基本不用添加注解,除非前端做了规定传入json格式后端要写@requestBody 。

@resuestParam 好像只是加在普通参数身上没注意过,我一般都是用在string,integer这种基本类型身上,不过要使用包装类,再就是规范是他的参数值value=对应你的参数名