发表于: 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配置文件。.....我之前看的那个到底是啥啊,生成了是不假,问题是它不能用啊。

啊,真好用

明天计划的事情:完成任务三代码,对应之前写好的接口,部署到服务器上



返回列表 返回列表
评论

    分享到