基于SSM(Spring+SpringMVC+MyBatis)基本框架的个人博客项目搭建bug与debug实录
个人博客项目
在深思熟虑后我们小组选题个人博客项目进行搭建,采用SSM框架为基础。在开发过程中,记录如下bug与debug,方便以后查询。我主要负责的是博客编辑等功能,以下将就此模块写一些经历的bug。
bug(1)
控制台异常,异常内容为:Current request is not a multipart request
通过查询,我发现这个提示的意思是,当前的请求不是一个mutilpart请求,就是当我们使用图片上传等功能时,表单的提交方式里必须是multipart/form-data。但是我使用的是开源的富文本编辑器,按道理不应该出现这种低级错误,但是出于慎重,我还是打开了谷歌浏览器的控制台来检查了一下,结果如下
可以看到,这其实就是一个multipart request,按道理不应该有这个错误。经过我不懈的努力,终于在CSDN上找到了原因,原来是因为SSM框架下必须在spring-mvc.xml中进行如下配置才能解析mutipart request
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<property name="maxUploadSize" value="10485760" />
</bean>
这样一来,就不会出现这个异常。
bug(2)
控制台异常,异常内容为:No converter found for return value of type
通过查询,是因为我们需要返回一个对象时,spring框架会自动将对象转换为json进行传输,但是转换json的jar包默认是不存在,所以我们需要导jar包,可以在pom.xml中进行配置。刚开始,我直接从别人的博客Copy了导入jar包的代码,但是依旧无法解析。而网上的基本上都指向了同一种方法。后来我才发现,他们的博客撰写时间都在2019年以前,导致和我使用的spring框架不能兼容,现记录正确的导入方式如下:
1.在pom.xml中添加如下依赖,等待jar包导入完成
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
2.在spring-mvc.xml下的注解controller注解扫描的配置下,添加如下配置
<mvc:annotation-driven />
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
这样,就能正常解析,返回json数据。