前端/postman通过url模拟→后台传参数,control类方法中如何接收
SpringBoot开发详解(五)--Controller接收参数以及参数校验
1、如果方法里定义的是Object作为参数的话,那么需要RequestBody配合使用,这样接收到的Object才不为空。// 2017-12-17改:这种情况下只有使用POST请求才有用
/**
* 新增
* 如果方法里定义的是对象作为参数的话,那么需要RequestBody配合使用,这样接收到的对象才不为空
*
* @RequestBody EnterpriseBase enterpriseBase
*/
@RequestMapping(value = "", method = RequestMethod.POST)
public ResponseObj<Boolean> insert(@RequestBody EnterpriseBase enterpriseBase) {
//先查询是否有这条数据,没有进行插入操作
EnterpriseBase enterpriseBase1 = enterpriseBaseMapper.selectByPrimaryKey(enterpriseBase.getEnterpriseId());
if (enterpriseBase1 == null) {
String id = UUID.randomUUID().toString();
enterpriseBase.setEnterpriseId(id);
int i = enterpriseBaseMapper.insertSelective(enterpriseBase);
if (i == 1)
return new ResponseObj<Boolean>(true, RetCode.SUCCESS);
return new ResponseObj<>(false, RetCode.FAIL);
} else {
return new ResponseObj<>(false, RetCode.FAIL);
}
}
2、如果方法里定义的是Map作为参数的话,也需要@RequestBody配合使用。// 2017-12-17改:这种情况下只有使用POST请求才有用
/**
* 后台map接收前端传过来的json对象
* 如果方法里定义的是Map作为参数的话,也需要@RequestBody配合使用
*
* @RequestBody Map<String,Object> reqMap
*/
@RequestMapping(value = "/ddd", method = RequestMethod.POST)
public ResponseObj<Boolean> ddd(@RequestBody Map<String, Object> reqMap) {
String enterpriseId = (String) reqMap.get("enterpriseId");
//先查询是否有这条数据,没有进行插入操作
EnterpriseBase enterpriseBase1 = enterpriseBaseMapper.selectByPrimaryKey(enterpriseId);
if (enterpriseBase1 == null) {
String id = UUID.randomUUID().toString();
// int i = enterpriseBaseMapper.insertSelective(enterpriseBase);
int i = 1;
if (i == 1)
return new ResponseObj<Boolean>(true, RetCode.SUCCESS);
return new ResponseObj<>(false, RetCode.FAIL);
} else {
return new ResponseObj<>(false, RetCode.FAIL);
}
}
3、当使用POST请求的时候,前端传过来的是json对象(其实也就是对象,后台使用Map或者Object接收)。application/json 这个 Content-Type 作为响应头大家肯定不陌生。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。
postman测试post请求.png
@RestController
@RequestMapping("/v1/enterpriseInfo")
public class EnterpriseBaseControl {
@Autowired
private EnterpriseBaseMapper enterpriseBaseMapper;
/**
* 新增
* 如果方法里定义的是对象作为参数的话,那么需要RequestBody配合使用,这样接收到的对象才不为空
*
* @RequestBody EnterpriseBase enterpriseBase
*/
@RequestMapping(value = "", method = RequestMethod.POST)
public ResponseObj<Boolean> insert(@RequestBody EnterpriseBase enterpriseBase) {
//先查询是否有这条数据,没有进行插入操作
EnterpriseBase enterpriseBase1 = enterpriseBaseMapper.selectByPrimaryKey(enterpriseBase.getEnterpriseId());
if (enterpriseBase1 == null) {
String id = UUID.randomUUID().toString();
enterpriseBase.setEnterpriseId(id);
int i = enterpriseBaseMapper.insertSelective(enterpriseBase);
if (i == 1)
return new ResponseObj<Boolean>(true, RetCode.SUCCESS);
return new ResponseObj<>(false, RetCode.FAIL);
} else {
return new ResponseObj<>(false, RetCode.FAIL);
}
}
/**
* 后台map接收前端传过来的json对象
* 如果方法里定义的是Map作为参数的话,也需要@RequestBody配合使用
*
* @RequestBody Map<String,Object> reqMap
*/
@RequestMapping(value = "/ddd", method = RequestMethod.POST)
public ResponseObj<Boolean> ddd(@RequestBody Map<String, Object> reqMap) {
String enterpriseId = (String) reqMap.get("enterpriseId");
//先查询是否有这条数据,没有进行插入操作
EnterpriseBase enterpriseBase1 = enterpriseBaseMapper.selectByPrimaryKey(enterpriseId);
if (enterpriseBase1 == null) {
String id = UUID.randomUUID().toString();
// int i = enterpriseBaseMapper.insertSelective(enterpriseBase);
int i = 1;
if (i == 1)
return new ResponseObj<Boolean>(true, RetCode.SUCCESS);
return new ResponseObj<>(false, RetCode.FAIL);
} else {
return new ResponseObj<>(false, RetCode.FAIL);
}
}
}
网友评论