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

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

本文为日记,不推荐新手初学,只记录一些工作中遇到的解决方案
    ${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标签或任何的带有路径的标签之前,这样就可将所有标签都纳入路径的管理范围
   
   

你可能感兴趣的:(tomcat,jsp)