bug之路

1、java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
在搭建SSM框架的时候报如上错误,根据错误提示找不到applicationContext.xml,首先检查这个配置是不是存在,通常情况下,
我们都会自己创建一个资源文件夹。把配置文件放进去。所以启动tomcat的时候就需要告诉启动器我们的配置文件在哪里
在web.xml文件中,我们添加了监听器,所以就要告诉容器监听器配件在哪,代码如下:

<!-- 注册ServletContext监听器,创建容器对象,并且将ApplicationContext对象放到Application域中 -->
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
 
<!-- 指定spring核心配置文件 -->
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>
</context-param>

2、对于maven项目,如果更改了一些配置文件,最好是刷新一下项目。

3、启动tomcat是日志信息出现中文乱码问题:
在tomcat配置文件中找到conf文件夹下的logging.properties修改为
java.util.logging.ConsoleHandler.encoding = GBK

4、在使用EL和JSTL表达式的时候,如果遇到${}这种无法识别,报一些RFC类似的错,这时候注意一下几点,如果你的web.xml中是version=2.3那么需要修改web.xml配置文件或者在jsp页面中加入 isELIgnored=“false”,如果这样还是不行的话,那就是我出现的问题,导入的jstl依赖错误

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>修改为
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

//记住一定要导入jsp中的,两者很想,但是功能不一样

5、  Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'cand_name' not found. Available parameters are [0, startTime, endTime, param3, param1, param2]

关于这个问题,出现过好几次类似的错误,每一次错误的原因都不同,将个人出现的原因总结一下:
总之,出现这种原因的总体原因就是参数没有正确传递,导致找不到参数。
1、if里面的字段是传过来的参数,而不是数据库中的字段,在这里踩了两次坑
2、每一个参数都要在接口中绑定起来,不然会找不到参数
3、对于封装好的对象类型也要进行绑定,而且在这个文件中引入对象中的属性必须使用对象.属性的方式
4、对于时间类型的判断处理(oracle数据库)to_date(#{startTime},‘yyyy-mm-dd’)而不是#{to_date(‘startTime’,‘yyyy-mm-dd’)}
5、对于大于等于,小于等于这样的特殊字符如果报错,看是不是因为转义的问题。

发布了33 篇原创文章 · 获赞 37 · 访问量 4389

猜你喜欢

转载自blog.csdn.net/weixin_42142899/article/details/103307342
bug