发表于: 2020-12-21 23:20:16

1 1451


今天完成的事情:
16.Post时,对比用Http Body接收参数,用param接收参数的区别,分别描述两种方式的使用场景
17.用Spring messageSource 配置错误信息,在接口处做校验,根据错误的类型返回对应的错误信息
明天计划的事情:
18.配置Nginx,配置域名指向Resin,本地配置Host,通过域名在浏览器,Postman等测试数据
深度思考
遇到的问题:




错误原因:
主键自增的表进行了同主键的重复插入,也就是常说的主键冲突。
解决方案:
1、根据个人具体场景,不重复插入数据即可
2、插入数据的时候,不设置主键的值

3、插入数据的时候使用insert ignore ,保证已有记录便不再插入



收获:


1.接受参数,这个是程序上的区别
2.了解如何用Http Body接收参数,param接收参数

3.然后再来对比


先用@RequestParam接收参数,接受参数用POST


了解@RequestParam注解的使用原理


目前感觉和@RequestBody区别不大



运行报错



运行@RequestBody对比,成功添加,说明语法没有问题



报错:所需的学生参数“Student”不存在   浏览器参数没有传过来,方法没有收到参数




@RequestParam这个注解找了几本书,字影都没看到。在网上搜索还是看太懂,还是看视频吧




空指针错误,数据传输不进来, 因为我请求是以JSON请求的,参数在body里, @RequestParam无法获取body中的参数,可以用 @RequestBody获取body中的参数

想要获取参数, postman的header就得改


还有几种办法
1.form-date
2.Params

3. 或者直接在url上拼 xxxx.xxx.xxx?a=xxx&b=xxxx




依旧空指针报错



发现我加上这个的话, 就会把我的model拆开,id,name分开参数接收,直接去掉
当方法参数没有用@RequestParam修饰时, 那么会默认绑定同名的参数.

意思就是 model不用注解的做参数接收,会把它当成一个map看一样的, 有哪些属性就允许接收哪些参数



运行成功




总结
 1.在GET请求中,不能使用@RequestBody。
 2.在POST请求,可以使用@RequestBody和@RequestParam
@RequestBody一般用于json批量传入数据,@RequestParam不能收到body中json的数据
====================================================
用Spring messageSource 配置错误信息,在接口处做校验,根据错误的类型返回对应的错误信息
1. 学习 messageSource
书面定义:
messageSource是一个接口,它定义了几种解决消息的方法。 ApplicationContext接口扩展了此接口,以便所有应用程序上下文都能够解析文本消息。 应用程序上下文将消息解析委托给确切名称为messageSource的bean。



中文乱码



重新运行



我觉得messageSource作用:就直接告诉那里出了问题,你有什么没做,类似在其他网站没写密码,点登录,就会告诉用户没输密码。
============================================
了解Restful风格






/**
* delete接口
*
* @param id
* @return
*/
@RequestMapping(value = "/DELETEStudent/{id}", method = {RequestMethod.DELETE, RequestMethod.GET})
public @ResponseBody
Map<String, Object> delete(@PathVariable("id"int id) {
//
if (null == studentService.selectById(id)) {
System.out.println("NULL");
return Restful.set(404, messageSource.getMessage("delete.null", null, null));
else {
Student student = new Student();
student.setId(id);
studentService.deleteById(student);
return Restful.set(200, "删除数据成功");
}
}




====================================================
任务进度:任务2步骤 16
任务开始时间:2020-11-30
预计结束时间:2020-12-23



返回列表 返回列表
评论

    分享到