JS中如何获取到EL表达式的值?
博客专区 > hanfeng 的博客 > 博客详情
JS中如何获取到EL表达式的值?
hanfeng 发表于4年前
JS中如何获取到EL表达式的值?
  • 发表于 4年前
  • 阅读 16785
  • 收藏 4
  • 点赞 4
  • 评论 5

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 昨天在项目中碰到一个奇葩问题,在js中死都获取不到contextPath的值,甚是纠结。通过探讨和google发现问题所在,今天解决了,发布博文记录下。

原先做法是在jsp页面引入头文件

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"  %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="ctxStatic" value="${pageContext.request.contextPath}/static" />
<c:set var="ctx" value="${pageContext.request.contextPath}"/>

然后在js文件里头使用使用${ctx},结果是直接输出,并没有被解析出来。


因为是js代码是单独出来的文件,然后引入到jsp页面。现在我们可以提前在jsp页面定义js的全局变量来解决。

<script type="text/javascript">
    var ctx = "${ctx}";
</script>

然后我们在引入的js代码中就可以直接使用ctx,轻松获取到所需的值。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 19
博文 44
码字总数 36874
评论 (5)
Neoman
提法就有问题,一个是服务端运行的程序,一个是客户端运行的程序。
hanfeng

引用来自“Neoman”的评论

提法就有问题,一个是服务端运行的程序,一个是客户端运行的程序。
码农不善表达吧
yuyuyuyu
不错的解决方法,可以机遇优化,把所有要用到的变量统一挂在一个变量下,比如,config之类的,以后直接,config.{}取值
hanfeng

引用来自“yuyuyuyu”的评论

不错的解决方法,可以机遇优化,把所有要用到的变量统一挂在一个变量下,比如,config之类的,以后直接,config.{}取值
好的 感谢你的建议
uuld
有没有想过遇到数组怎么办,这样接收到的是一个字符串,如果用json还要修改后台代码。
×
hanfeng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: