首次java项目出现的问题(全部写在一起)
- aop依赖异常
javax.servlet.ServletException:Servlet.init() for
servlet despatcherServlet threw exception java.lang.
NoSuchMethodError: org.springframework.aop.
framework.AopProxyUtils.getSingletonTarget
(Ljava/lang/Object;)Ljava/lang/Object
此异常是在ssm整合中因为pom.xml没有导入对应spring-aop依赖或者版本错误导致的前端网页报错。
解决办法:导入对应依赖包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
Spring 4.2.4 RELEASE(开发时用的),4.3.12.RELEASE(部署后,可以直接使用它)4.2.4版本中发现没有对应的getSingletonTarget方法,所以在程序运行时会报此错误,该依赖包导入之后问题就搞定!
2.前端显示空数据异常
在此能明显的看出后端数据是对应的五条显示出来了,且打印出了5个1,说明在firmList集合中存在五个size,那么为什么前端显示是空的呢。
解决思路:
1.判断后端数据是否能正常输出显示在后端控制台(可以,next)
2.判断controller层中model.addObject设置的属性名是否与jsp页面中显示的集合名一直(可以,next)
3.判断mapper层与service层及impl层是否输入层层调用且对应(可以,最后一步)
4.(苦思许久发现最后是出现在了mybatis配置文件中的自动映射那)
<settings>
<!-- 配置mybatis的log实现为LOG4J -->
<!-- <setting name="logImpl" value="LOG4J"/> -->
<setting name="logImpl" value="STDOUT_LOGGING"/>
<!-- 设置resultMap的自动映射级别为NONE(禁止自动匹配) -->
<setting name="autoMappingBehavior" value="PARTIAL"/>
</settings>
当时因为自动映射级别是禁止的,所以才出现的该问题,圆满解决!
3.乱码问题(以下为个人总结的几点乱码问题)
配置web.xml中配置乱码过滤器
<!-- 解决response中文乱码 -->
<!-- 字符过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filterclass>org.springframework.web.
filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如问题没解决则可能是以下几点未配置好导致乱码。
-
后端插入到数据库乱码
这种乱码是因为在设置编码未统一设置一致编码导致乱码,可在数据库中(个人用的mysql)去设置该表的字符集为UTF-8并在idea开发工具中File | Settings | Editor | File Encodings中为该项目编码统一设置为utf-8(保证编码一致性) -
后端传入数据到前端页面乱码
此乱码极有可能是因为后端插入到数据库乱码或因为未设置编码格式导致乱码
策略:
手动设置编码格式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
- 前端页面未设置编码格式导致乱码
设置对应编码utf-8
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<% request.setCharacterEncoding("UTF-8"); %>
<%response.setContentType("text/html;charset=utf-8");%>
问题搞定!
以上便是第一个项目遇到的问题,及解决方法!希望能对亲们有所帮助~~