javascript - jsp里部署全局的绝对路径
PHP中文网
PHP中文网 2017-04-10 17:50:33
[JavaScript讨论组]

rt,jsp获取绝对路径可以使用

<c:set var="ctx" value="${pageContext.request.contextPath}"></c:set>

然后我要在js中引用,我看到有人这么用

<script type="text/javascript" >
<!-- 
   CTX = '${pageContext.request.contextPath}';
//-->
</script>

有那位能给我解惑吗,这段js写在类似标签注释的里面,是啥意思?
还有我使用这种写法,比如写ajax时,在url属性里面加上${ctx},不生效又是什么原因?
PS:
1.补充一下,这些全都写在jsp文件中;
2.我知道${...}在jsp中是el表达式

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
黄舟

上面一种是在服务端执行时,将项目路径存到的PageScope中。

<c:set var="ctx" value="${pageContext.request.contextPath}"></c:set>
<% 
    // 实际上就等于这段代码
    String ctx = request.getContextPath();
%>

而下面那一种是在浏览器执行时,将 一个已经确定的字符串赋存到 js的window内。

<script type="text/javascript" >
<!-- 
   CTX = '${pageContext.request.contextPath}';
   
   // 注意!!这里会发生两次变化,第一次是服务器处理EL表达式。
   // 之后将处理后的代码发送给浏览器,这时这个值已经是死的并不是一个变量了。
   // 实际你审查html,你会看到如下代码。(最后js写的不标准,未定义就直接用了)
   CTX = '/demo';
//-->
</script>

再之后 你其他的js文件里就可以通过CTX设置获取项目目录。
至于Ajax 里 还是 ${ctx},这说明你这个js是写到html文件里的。
如果是引用外部script那${ctx}就不能用了。

黄舟

1、在.jsp文件里的js代码里,可以这么写:${数据} //${}是jsp里的表达式语言EL啊
2、在.js文件里的js代码,不能使用表达式语言。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号