我们的项目用的是EasyUI+SpringMVC+EJB+JPA,分享一下项目中遇到的一些问题及其解决方法。前台用的EasyUI,页面中引入了easyUI的js与css(引入路径正确),但是无论如何都显示不出来,如下图:
EasyUI的样式没有,看控制台:警告,找不到
21:26:25,643 WARN [org.springframework.web.servlet.PageNotFound](http-localhost/127.0.0.1:8080-1) No mapping found for HTTP request with URI[/itoo-basic-web/themes/default/easyui.css] in DispatcherServlet with name'action' 21:26:25,649 WARN [org.springframework.web.servlet.PageNotFound](http-localhost/127.0.0.1:8080-2) No mapping found for HTTP request with URI[/itoo-basic-web/themes/icon.css] in DispatcherServlet with name 'action' 21:26:25,656 WARN [org.springframework.web.servlet.PageNotFound](http-localhost/127.0.0.1:8080-5) No mapping found for HTTP request with URI[/itoo-basic-web/jquery.easyui.min.js] in DispatcherServlet with name 'action' 21:26:25,657 WARN [org.springframework.web.servlet.PageNotFound](http-localhost/127.0.0.1:8080-3) No mapping found for HTTP request with URI[/itoo-basic-web/demo/demo.css] in DispatcherServlet with name 'action' 21:26:25,666 WARN [org.springframework.web.servlet.PageNotFound](http-localhost/127.0.0.1:8080-4) No mapping found for HTTP request with URI[/itoo-basic-web/jquery.min.js] in DispatcherServlet with name 'action' 21:26:25,674 WARN [org.springframework.web.servlet.PageNotFound](http-localhost/127.0.0.1:8080-1) No mapping found for HTTP request with URI[/itoo-basic-web/jquery.easyui.min.js] in DispatcherServlet with name 'action'<span style="font-size: 14pt; font-family: 华文中宋; background-color: rgb(255, 255, 255);"> </span>
再用浏览器调试,点进去之后:所有的js,css都是空的
综合上面的情况来看,没有显示出来js,css,猜测是js,css被拦截了。所以查了一下springMVC的配置,这个问题就被解决了。
<!-- EasyUI样式,JS配置 刘腾腾 start--> <mvc:annotation-driven/> <mvc:resourceslocation="/demo/"mapping="/demo/**"></mvc:resources> <mvc:resourceslocation="/themes/"mapping="/themes/**"></mvc:resources> <mvc:resourceslocation="/locale/"mapping="/locale/**"></mvc:resources> <mvc:resourceslocation="/" mapping="/**"></mvc:resources> <!-- EasyUI样式,JS配置 刘腾腾 end-->
配置完成之后,效果出来了:
点进去一个连接都会有显示的样式或者是js:
效果:
总结:
分析原因:在web.xml里面配置<servlet-mapping>下的<url-pattern>标签如下:<url-pattern>/<url-pattern>。即把所有的请求都交给spring去处理了,也就是说拦截了所有的请求。而所有的available的请求url都是在controller里面使用注解@RequestMapping()来配置的,这样访问js,css,jsp等这些静态资源就会访问不到,故需要配置。可以在web.xml里面进行相关的配置,但是没有试验成功;还可以在spring-servle.xml里进行配置,也就是上面用的方式。
<mvc:resources/>配置通过location属性制定静态资源的位置,由spring MVC框架自己处理静态资源。并且允许静态资源放在任何地方,如WEB-INF目录下、类路径下,甚至可以打成Jar进行访问。