为了账号安全,请及时绑定邮箱和手机立即绑定

jsp里部署全局的绝对路径

jsp里部署全局的绝对路径

侃侃无极 2019-03-27 10:19:29
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表达式
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

上面一种是在服务端执行时,将项目路径存到的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}就不能用了。



查看完整回答
反对 回复 2019-04-17
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

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

查看完整回答
反对 回复 2019-04-17
  • 2 回答
  • 0 关注
  • 853 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信