JSP @include file的路径问题

以前的项目多是直接部署在根目录下,很少考虑上下文路径的问题,这次需要将应用部署到指定的上下文路径上,是portlet上要用,以前没有用过portlet,不是很了解!

在使用跟目录的时候,是这么写的<%@ include file="/common/taglibs.jsp"%>

在使用aa作为上下文路径的时候,我以为要写为<%@ include file="/aa/common/taglibs.jsp"%>

因为在<%@ include file中不能使用变量赋值,所以只能写死。

但是运行时,发现不行,报错,找不到文件,找了下,发现没有写错,好奇怪,就试着把/aa去掉,就可以了。

就查了一下资料,发现原来如此:

include的file属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释。

 

原来<%@ include file在以“/”开头的时候,会自动赋上上下文路径。看来基础还有在提高啊!:)

猜你喜欢

转载自wuhenliushui.iteye.com/blog/2080380