日记 - jsp的${pageContext.request.contextPath}为空解决方案

环境:idea13.1.1 jdk1.6 tomcat6.0.2.9
框架:springMVC+maven+hibernate

[b]本文为日记,不推荐新手初学,只记录一些工作中遇到的解决方案[/b]
${pageContext.request.contextPath}取不到值,为空字符串问题。
context是有tomcat创建,${pageContext.request.contextPath}之所以得不到值,是因为tomcat创建的上下文中该path就是空的。
我在idea中默认设置的path就是“/”,这也是导致${pageContext.request.contextPath}为空的原因。后改为“/cosmetics”,从此url的地址就变成了http://localhost:8080/cosmetics/。

这之后又因需在多处引用${pageContext.request.contextPath},从而想要将其简化。、
<c:set var="url">${pageContext.request.requestURL}</c:set>
<base href="${fn:substring(url, 0, fn:length(url) - fn:length(pageContext.request.requestURI))}${pageContext.request.contextPath}/" />
将上诉语句放在head里加载,同时上诉语句需要下列支持:
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

那么好处是什么呢?
此后的标签里的引用都会被默认添加一个${pageContext.request.contextPath}
例如之前我的引用为“${pageContext.request.contextPath}/login”,那么现在的引用为
“login”


此处为最新添加内容:
因添加了我上述内容的引用而导致的路径问题,如果已经发现的同学想必也知道如何解决了,对于还未遇到的同学,我这里附上解决方案。


<c:set var="url">${pageContext.request.requestURL}</c:set>
<base href="${fn:substring(url, 0, fn:length(url) - fn:length(pageContext.request.requestURI))}${pageContext.request.contextPath}/" />
这块内容放置于你其他的link标签或任何的带有路径的标签之前,这样就可将所有标签都纳入路径的管理范围
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值