使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题

1、IE8执行AJAX请求时,返回JSON出现下载文件(其实后台执行成功了,但是前台就是看着不爽)

解决方案:
  • Produces返回类型改成"text/plain",(如果用的response那么就在消息头增加contentype为"text/plain"就好了)
  • 如果上面使用的是produces的话,那么方法返回类型必须是String类型的,所以需要把json数据转成字符串,我用的fastjson(转换方式可以参考这个博主的:Java中fastjson库中Map、JSON、String相互转换),所以就是下面这样的
    使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第1张图片
    使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第2张图片

2、使用easypoi导入excel文件的时候,如果不想每一个字段都对应excel中一列的话,那么这个字段不加@Excel注解就行了

使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第3张图片

3、使用junit4进行单元测试,因为我需要自动注入service和mapper,就报错了:

java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @BootstrapWith’s ‘value’ attribute or make the default bootstrapper class available.
查阅了网上资料,大部分都是以下情况:

  • 包依赖没有或者版本不对,统一成spring框架的版本即可,可以用下面这种方式统一包的版本

      
          org.springframework
          spring-test
          ${spring.version}
          test
      
    
  • 如果还报错,看看你的junit4测试类写的对不对,注解加的对不对:
    使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第4张图片

4、往tomcat部署的时候

  • 第一个是部署报错,查看tomcat的启动日志发现找不到applicationContext.xml
    看了一下target中确实没有我的那些配置文件
    使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第5张图片
解决办法,这里需要配置一下pom.xml文件,添加一下配置:

使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第6张图片
修改后启动成功

  • 第二个错误,启动后输入地址,找不到弹不出我的工程主页,报404找不到页面
    使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第7张图片
    原因是这里需要配置一下service.xml文件
    使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第8张图片
    在host节点下添加:
	

5、Tomcat部署好了,项目启动成功,但是查询的时候没有数据,看了一下tomcat的日志发现springmvc整合的mybatis查询报错了:

Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.bykj.mapper.StudentScoreMapper.selectByExample] with root cause
没有找到对应的mapper,看了一下target中,确实没有mapper的xml文件,上网查了一下,原来是maven没有编译,所以这里需要改一下pom.xml文件
在resources节点下添加以下代码:


    src/main/java
    
        **/*.xml
    
    false

6、过了几天把这个项目整合了一下swagger2在线api文档,不知道怎么搞得,后台传过来的json字符串是正常的json对象,但是前台获取的时候总是多一条 / ,所以就转不成json对象,于是又把返回类型改成了JSONObject就好了,另外ie浏览器竟然把汉字给解析成乱码了,所以又在produces上面加了编码格式:produces = “text/plain;charset=utf-8”,这样就解决了两个问题

使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第9张图片
这就和前面必须返回string类型矛盾了,可是现在不用返回string类型也不报错了,不知道是不是我改了fastjson的版本问题,这里记录一下我的fastjson版本是1.2.30:



    com.alibaba
    fastjson
    1.2.30

7、springmvc整合fastjson之后,前台的swagger2生成的json文件是乱码的:

使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第10张图片
查了好半天,原来fastjson整合springmvc要跟spring的版本有关系,我就是用的4.2.1的spring结果用的是4.2以下的fastjson配置方案,这样就不对照了,参考这个博文解决了:(Fastjson、Jackson与SpringMVC整合的MessageConverter配置)https://my.oschina.net/liuyuantao/blog/796675

贴上解决方案:
1.Jackson

maven依赖


    com.fasterxml.jackson.core
    jackson-databind
    2.7.1


    com.fasterxml.jackson.dataformat
    jackson-dataformat-xml
    2.7.1

springmvc-servlet.xml中配置

    
        
            
        
    

2.FastJson

由于FastJson针对Spring4.2以后进行特殊优化,具体如图
使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题_第11张图片
所以FastJson可以分为Spring4.2及以下配置和Spring4.2以上的不同配置

Spring4.2及以下配置

maven依赖


    com.alibaba
    fastjson
    1.2.7

springmvc-servlet.xml中配置


        
            
                
                    
                        text/html;charset=UTF-8
                        application/json
                        application/xml;charset=UTF-8
                    
                
                
                    
                        WriteMapNullValue
                        QuoteFieldNames
                        WriteDateUseDateFormat
                    
                
            
        

Spring4.2以上配置

maven依赖


    com.alibaba
    fastjson
    1.2.7

springmvc-servlet.xml中配置

        
            
            
        



        
        
            
                text/plain;charset=UTF-8
            
        



        
            
                text/html;charset=UTF-8
                application/json;charset=UTF-8
            
        
        
            
                
                    
                        AllowArbitraryCommas
                        AllowUnQuotedFieldNames
                        DisableCircularReferenceDetect
                    
                
                
            
        

springboot字段校验常用注解:validator注解

你可能感兴趣的:(开发问题记录,easypoi,ssm,单元测试,swagger乱码)