Spring mvc:资源标签理解

时间:2014-08-20 02:34:25

标签: java xml spring

在Spring Petclinic中,以下标记用于静态内容。

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

但我在理解这方面遇到了问题,因为映射和位置是相同的。那么这个标签解决的目的是什么?如果css文件请求是这样的。

“spring:url value =”/ resources / css / petclinic.css“var =”petclinicCss“”

然后在执行mvc:resources标记之后转换后的URL是什么。

2 个答案:

答案 0 :(得分:2)

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

来自此网址格式/resources/**的任何请求,Spring将查找/resources/

  1. mapping是网址格式
  2. 项目类路径中存在资源的
  3. location

    Configuring Serving of Resources


    示例用法,

    1. 使用JSTL <c:url>

      <script type="text/javascript" src="<c:url value="/resources/js/jquery.js" />"></script>
      
    2. 使用<spring:url>

      <spring:url value="/resources/images/favicon.ico" var="favicon" />
      

答案 1 :(得分:0)

正如所说,&#34;位置&#34;是您的文件所在和&#34;模式&#34;用于调用它们的URL。

你会理解这个例子。假设我们有这个WebContent文件夹结构:

-WebContent
    -META-INF
    -WEB-INF
        -assets
            -css
                *myview.css
            -js
        -view
            *myview.jsp //or html or any kind of view format)

现在,在spring调度程序中,我使用这样的标记:

<mvc:resources mapping="/resources/**" location="/WEB-INF/assets/" />

然后,在我的&#34; myview.jsp&#34;打电话给#34; myview.css&#34;我必须写这个:

<link href="<c:url value="/resources/css/myview.css" />" rel="stylesheet" type="text/css">

事实上,Spring调度员所做的是以&#34; / reources /&#34;开头的所有网址,由[mapping =&#34; / resources / **]表示(以&#34开头;资源&#34;和**意味着无论结束)它取代了&#34; / resources /&#34; by&#34; / WEB-INF / assets /&#34; (由location =&#34; / WEB-INF / assets /&#34;配置)并将其余的URL附加到&#34; / WEB-INF / assets /&#34;完成项目结构中资源的位置。

我希望现在很清楚