【问题标题】:Spring MVC - mvc resourceSpring MVC - mvc 资源
【发布时间】:2012-09-26 16:04:38
【问题描述】:

我有一个 spring 项目,在 linux/tomcat6 服务器上,我们有一个外部文件夹,用于存放“/var/projectname/personphotos”内的人物照片。尝试制作符号链接等,但似乎没有任何效果,应用程序看不到外部文件夹。我碰巧被<mvc:resources> 标签和<mvc:annotation-driven /> 惊呆了。如何将它添加到项目中? 我在想类似的事情

<mvc:resources mapping="/personphotos/" location="/var/projectname/personphotos" />

在应用程序中我可以有类似<img src="/personphotos/bla-bla.jpg"/> 的东西

所有的教程都说要使用标签,但没有说在哪里放置标签。我认为必须了解该位置,请原谅我的无知。我尝试将它添加到 applicationcontext.xml 并因错误而爆炸。其他教程说要编辑 servlet-context.xml,不管它在哪里?见here

我正在使用带有 STS 的 spring 3.0.7,我尝试在 pom 文件中更改为 3.1.0。版本更改导致 mvn tomcat:run 给出一些错误。我在某处看到 mvc:resource 标记在 3.0.4 或更高版本中可用,我想我现在是安全的。请帮助消除这些歧义。

【问题讨论】:

    标签: spring spring-mvc spring-security spring-roo spring-webflow


    【解决方案1】:

    它必须在您的 servlet-context.xml 文件中,可能是这样:

    <mvc:resources mapping="/personphotos/**" location="/var/projectname/personphotos" />
    

    您可以使用以下方式访问它:

    <img src="${pageContext.request.contextPath}/personphotos/bla-bla.jpg"/>
    

    开始部分是确保您的应用程序上下文部分也被添加。

    编辑 为了他人的利益,最终起作用的是

    <mvc:resources mapping="/personphotos/**" location="file:/var/projectname/personphotos" />
    

    【讨论】:

    • 我在我的项目中找不到名为 servlet-context.xml 的文件。我可以在“src/main/webapp/META-INF”中找到context.xml,除了“src/main/resources/META-INF/spring/applicationcontext.xml”中有applicationcontext.xml。我不确定在哪里可以找到 servlet-context.xml
    • 是的,我的意思是您已针对 DispatcherServlet 注册的上下文文件,查看您的 web.xml ,您应该看到 DispatcherServlet 的条目,init-param 值应该指示它是哪个应用程序上下文文件使用 - 它应该是您指定的 context.xml 文件
    • 你是对的,我找到了正确的文件。我正在尝试 ti 测试它是否适用于 Windows,但我没有让图像加载这里是我的条目 不确定我是否正确。
    • 不,带有文件系统路径的classpath: 将不起作用,如果你在文件系统中有它,试试这个file:/C:/Users/faiyo/Pictures/
    猜你喜欢
    • 2015-02-26
    • 2023-04-01
    • 2010-10-04
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多