最近在学习easyui,需要后台返回json数据格式,后台采用Springmvc+mybatis+spring+mysql;由于easyui主要包含一些静态文件的调用,因此我首先采用的是在springmvc配置文件中加上静态文件的映射关系,
<!-- 静态文件 -->
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/easyui/**" location="/easyui/" />
<mvc:resources mapping="/js/**" location="/js/" />
在网上查询了很多资料,发现解决静态文件访问的访问有很多,其中一种恰好可以实现静态文件和控制器同时生效。这种方式是启用Servlet的defaultServlet来处理静态文件,只需要在web.xml中加上上述配置即可。
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
当然,springmvc中就不需要配置静态文件的映射了。
但是,我还是不懂为什么在springmvc中配置静态文件的映射之后,会出现控制器失效的情况???
解决方案:
<!-- 静态文件 -->
<mvc:annotation-driven/>
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/easyui/**" location="/easyui/" />
<mvc:resources mapping="/js/**" location="/js/" />
加入一句<mvc:annotation-drivern/>就可以解决
另一种方法是在springmvc中加入
<!-- 对静态资源文件的访问 -->
<mvc:default-servlet-handler/>