发表于: 2020-06-05 22:42:06
1 1527
今天完成的事情:手动写了一部分的控制层 解决了几个报错
一、HTTP405 错误提示:消息JSP只允许GET POST 或HEAD
解决方法:使用Tomcat8以下的版本,我之前用的tomcat9 换成了tomcat7之后就可以了
二、解决了postman无法请求PUT方法
1、报错原因:
Tomcat接收到POST请求时:
* 1.将请求数据封装一个Map
* 2.request.getParameter(“userName”)就会从Map中取值
* 3.SpringMVC封装POJO数据的时候,会把每个属性值调用request.getParameter(“userName”)
Tomcat接收到PUT请求时:
* 1.不会封装PUT请求体中的数据为Map
* 2.请求体中的数据,request.getParameter(“userName”)拿不到
总结:Tomcat不会对PUT请求体中的数据进行封装,所以我们要做的就是帮助他去拿到未封装的数据。
2、解决方案
重新request.getParameter()方法
SpringMVC中对该问题已经有解决,其本质就是重新了request.getParameter()方法,当时普通请求的时候直接拿取数据,不是则帮你去拿数据并封装成Map.
在web.xml文件中配置上过滤器即可
<!--将post请求转换为put-->
<filter>
<filter-name>httpPutFormContentFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpPutFormContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三、手动写了另外的代码,写的挺快,出错的也不少 错的最多的是
Invalid bound statement (not found):
1、问题实质:mapper接口跟mapper配置文件没有映射
2、问题原因:分为低级原因和更低级原因
(1)、低级原因
spring配置文件中关于mybatis的与xml文件路径寻找相关的配置没有写 导致调用dao层方法时,没有寻找dao.xml文件的正确路径 结果 dao迷路了 从而两者无法映射
解决方案:
①打开spring-context.xml配置文件
②找到class为org.mybatis.spring.SqlSessionFactoryBean 这个bean
③找到name为mapperLocations的property
(2)更低级原因:
①dao层的方法和mapper.xml中的方法不一样;
②mapper中的namespace 和对应的dao层不一样
③拼写错误 如漏写 少写 多写.... 比如表名啊这些,写错了也不会有提示的,书写的时候要注意
四、师兄教了如何使用配置文件逆向生成mapper配置文件。.....我之前看的那个到底是啥啊,生成了是不假,问题是它不能用啊。
啊,真好用
明天计划的事情:完成任务三代码,对应之前写好的接口,部署到服务器上
评论