我正在为 Spring MVC 应用程序实现一个缓存清除系统。
为了让这个系统正常工作,我必须从给定的 URL 中删除“缓存清除代码”。假设我生成的缓存清除代码是“123”,并且我有一个 .css 网址:/public-123/css/style.css。在这个例子中,我想要/public/css/style.css才能成功调用(-123必须剥离)。
这适用于我的“mvc-config.xml”上下文文件:
<mvc:resources mapping="/public-123/**" location="/public/" />
但我也愿意any缓存清除代码可以正常工作,即使它不是当前的代码。例如我也想/public-456/css/style.css到达 style.css 文件。
如果我尝试向映射添加另一个通配符:
<mvc:resources mapping="/public-*/**" location="/public/" />
这不起作用!我收到 404...
我如何指定“映射”属性,以便很好地管理“public-”部分之后的任何代码?
处理这个问题的一种方法是使用 Spring EL,如春季文档 http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources:
<mvc:resources mapping="/resources-#{applicationProps['application.version']}/**" location="/public-resources/"/>
您可以将“123”部分存储在属性文件中,这样它只设置一次。例如。通过属性占位符 http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-placeholderconfigurer:
<context:property-placeholder location="classpath:myApp.properties"/>
<mvc:resources mapping="/resources-${cache.code}/**" location="/public-resources/"/>
这样做的优点是能够通过相同的属性值在 JSP 页面中读取此代码(以生成链接)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)