JavaScript中${pageContext.request.contextPath}取值问题及解决方案

作者:青柠时间:2026-10-30 18:14:32浏览:190

在JSP页面中直接引用${pageContext.request.contextPath}可正常获取上下文路径,但若将其写入外部.js文件,该表达式仅被视为普通字符串。原因是${}为JSP EL表达式,仅由JSP编译器处理,静态JS文件不会经过编译。解决方案是避免在外部JS中直接使用EL表达式,或通过JSP页面动态生成变量传递。

JavaScript中${pageContext.request.contextPath}取值问题及解决方案

在JSP页面中,采用${pageContext.request.contextPath},的方式一能够正常获取到上下文路径,但方式二却无法正确解析。

方式二中获取到的结果仅为字符“${pageContext.request.contextPath}”。

方式一的代码示例如下:


<script type="text/JavaScript">
var t = "${pageContext.request.contextPath}";
<script>

方式二的代码示例如下:


<script src="${ctx}/jqGrid.js" type="text/javascript"> 
</script>
jqGrid.js:
function jqGridInclude()
{
var t = "${pageContext.request.contextPath}";
}
jqGridInclude();

-----解决方案--------------------

出现该问题的根本原因在于${pageContext.request.contextPath}并非JavaScript代码,而是JSP的EL(Expression Language)表达式。当把这段代码放入独立的.js文件中时,JSP编译器不会对其进行处理,因此该表达式在JS中仅被当作普通字符串对待。

${}是EL表达式的语法,只能在JSP文件中使用。如果在.js文件中使用该语法,它仅仅是一个普通的字符串,无法被解析为实际的路径值。

以上所述是小编给大家介绍的JavaScript中${pageContext.request.contextPath}取值问题及解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!

作者最新文章