【问题标题】:Spring mvc:resources tag understandingSpring mvc:resources 标签理解
【发布时间】:2014-08-20 02:34:24
【问题描述】:

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

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

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

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

那么在执行 mvc:resources 标签后,转换后的 URL 是什么。

【问题讨论】:

    标签: java xml spring


    【解决方案1】:
    <mvc:resources mapping="/resources/**" location="/resources/"/>
    

    来自此 url 模式 /resources/** 的任何请求,Spring 将寻找 /resources/

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

    Configuring Serving of Resources


    示例用法,

    1. 通过使用 JSTL &lt;c:url&gt;

      <script type="text/javascript" src="<c:url value="/resources/js/jquery.js" />"></script>
      
    2. 通过使用&lt;spring:url&gt;

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

    【讨论】:

    • A Nyar Thar:感谢您的回复。我有一个查询。如果 "> 被执行。然后 spring 将在哪里寻找 Jquery.js 文件。我的理解是它会在 /resources 内部查看,其余路径将保持不变。因此它会在 /resources/js/jquery.js 这个位置找到 js 文件。但是 mvc:resources 标签在这里做了什么增值。
    • @Anshul 页面加载中的实际 url 将是 &lt;context-path&gt;/resources/js/jquery.js ..
    【解决方案2】:

    如前所述,“位置”是您的文件所在的位置,“模式”是用于调用它们的 URL。

    通过这个例子你就会明白。假设我们有这个 WebContent 文件夹结构:

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

    现在,在 spring dispatcher 中,我使用这样的标签:

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

    然后,在我的“myview.jsp”中调用“myview.css”我必须这样写:

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

    其实Spring dispatcher所做的就是对所有以“/reources/”开头的url,用[mapping="/resources/**]表示(以“resources”开头,**表示不管结尾)它将“/resources/”替换为“/WEB-INF/assets/”(由 location="/WEB-INF/assets/" 配置)并将 URL 的其余部分附加到“/WEB-INF/assets/”到find 资源在项目结构中的位置。

    我希望现在很清楚

    【讨论】:

      猜你喜欢
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多