Spring MVCE序中得到静态资源文件css,js,囄
文g的\?br />
问题ȝ
作?轻舞肥羊 日期:2012-11-26
?Spring MVC 开发应用程序,对于初学者有一个很头疼的问题,那就是程序数据都已经查询出来了,但界面样式仍然十分丑陋,加蝲不了 css,js,囄{资源文件。当你在览器上直接输入某个css文g的\径时Q直接得?04错误Q而\径肯定没有错Q其原因在于在web.xml 中配|了cM如下?spring servlet:

E序代码
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
h?nbsp; <url-pattern>/</url-pattern> q表C个servlet 拦截了所有的hQ包括css,js{。所以出C面描q的情况。如何解册个css,js{\径问题呢Q有如下几种解决Ҏ.
1. 使用spring mvc resource 去读取静态文?/strong>
比如?WEN-INF 下徏立static 文g夹,q在 static 文g多w面徏立css 文g夹,然后建立 1.css 文g.
修改 mvc-dispatcher-servlet.xml 文g

E序代码
<mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>
q样配置之后Q可以通过 http://your-ip:port/your-app/static/css/1.css 直接讉K了?br />
2. 采用 default servlet
?web.xml 里面配置

E序代码
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
q样做了之后Q所有前~为static 的请求都交给default servlet d理。如果你h http://your-ip:port/your-app/static/css/1.css Q就表示?webcontent 目录下的css文g夹下?.css文g?br />
3. 通过文g扩展名进行处?
?web.xml 里面配置

E序代码
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
4. 对spring servlet 不用restful 风格。在url 上加上前~

E序代码
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
q样做的目的是让 dispatchservlet L截以/app 开头的那些 URL,q不拦截css,js{?br />
5. 对spring servlet 不用restful 风格。在url 上加上后~

E序代码
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
q样做的目的是让 dispatchservlet 只拦?.do 的url. q不拦截css,js{?br />
上面介绍?U方法,Ҏ情况自己L选择一U,现在没办法说那种好,那种Ҏ不好Q都有可取之处,用在不同的场景而已?