我必须使用Spring MVC 3.1.0来获取现有应用程序,它在许多地方假设根上下文名称是什么。我正在更改根上下文名称,但我真的不想对根上下文进行硬编码,我希望该应用能够正常工作。显然,我仍然需要更改这些引用,但如果我稍后再次更改根上下文,我希望它能够正常工作。
参考文献分布在几个不同的位置:
return new ModelAndView("redirect:/OriginalAppName/home");
' background: url(/OriginalAppName/resources/images/chng-pwd-backg.png)
&#34; <a href="/OriginalAppName/home" ...
&#39; 解决这个问题的合理策略是什么?
答案 0 :(得分:0)
您的问题由3部分组成:
1。关于redirect:
视图名称前缀,Spring documentation说:
逻辑视图名称,例如redirect:/ myapp / some / resource将相对于当前Servlet上下文重定向
因此,您的案例的查看名称"redirect:/home"
应该可以正常运作。
2。可移植性的静态Web资源(JS / CSS)应该在任何地方使用相对链接:
background: url(./resources/images/chng-pwd-backg.png)
甚至可能:
background: url(../resources/images/chng-pwd-backg.png)
取决于包含的网页网址。
3. 动态网络资源(HTML / JSP等),可能使用与静态资源相同的方式:
<a href="./home" ...
或者可以使用内置的<spring:url>
代码:
<a href='<spring:url url="/home">' ...
或<c:url>
代码:
<a href='<c:url value="/home">' ...