springMVC+mybatis的一些坑

1. resources中的配置文件如果未拷贝到target

        并不会报错,需要在pom.xml的build中添加

<resources>
    <resource>
        <directory>src/main/java</directory><!--所在的目录-->
        <includes><!--包括目录下的.properties,.xml 文件都会被扫描到-->
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
    </resource>
    <resource>
        <directory>src/main/resources</directory><!--所在的目录-->
        <includes><!--包括目录下的.properties,.xml 文件都会被扫描到-->
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
    </resource>
</resources>

2. no mappering for GET /

 原因一:静态资源的访问出问题 

        可使用defaultServlet

        spring.mvc 中添加    <mvc:default-servlet-handler />

        web.xml中在dispatcherServlet之前添加

   <servlet-mapping>
       <servlet-name>default</servlet-name>
       <url-pattern>*.css</url-pattern>
   </servlet-mapping>

        或者在spring.mvc中对静态资源进行手动映射配置

    <mvc:resources mapping="/img/**" location="/img/"/>

        但这种方式在拦截jquery.min的时候出过问题。

原因二:xml文件未加载 

3. classpath和classpath*

前者只会从第一个classpath中加载,而
后者会从所有的classpath中加载

如果要加载的资源,
不在当前ClassLoader的路径里,那么用classpath:前缀是找不到的,
这种情况下就需要使用classpath*:前缀

在多个classpath中存在同名资源,都需要加载,
那么用classpath:只会加载第一个,这种情况下也需要用classpath*:前缀

注意:
用classpath*:需要遍历所有的classpath,所以加载速度是很慢的,因此,在规划的时候,应该尽可能规划好资源文件所在的路径,尽量避免使用classpath*

4. Date类型 

@DateTimeFormat(pattern = "yyyy-MM-dd")   //从前端获取
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")  //要返回给前端

5.restful 

         请求的末尾添加 / 后404, 例如添加的请求  url: " / team / ",

 默认情况下,请求末尾的斜杠,在服务端处理的情况是不确定的(如果用到了框架,框架对于/的处理也是不确定的),所以在请求的时候,api末尾不应该带有/。

如果api中没有该Get方法,则会返回404,有则返回Get 方法的响应。

6. string类型 却报Integer out of range

由自己创建了构造方法引起

 解决方案:给默认构造方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值