EL表达式中存在的坑,99%都会跳下坑,关于引号的问题

在编写jsp中的代码的时候,可以更加简便的使用el表达式,进行结果的获取,但是因为引号的问题京城出现没反应,那么什么时候需要使用引号,什么时候不需要添加引号呢?

  1. 总结如下:服务器给浏览器发送的是el表达式取值后的结果,也就是说el表达式是在服务器端完成的解析。

     		1. 默认的hashmap中的key是加了引号的,被传送到服务器进行展示,此时展示的是字符串去掉引号之后的结果,字面量
     		2. 如果el表达式是进行获取值的化,从域中进行获取值不需要进行加引号
     		3. 如果el表达式中是数字的话,不需要进行加引号
     		4. 如果el表达式中获取的数据需要进一步在浏览器使用字符串的形式出现,那么就需要添加引号
    
${pageContext.request.contextPath}
   " ${name}"  ----->展示给浏览器进行展示的,浏览器会进一步去掉引号
    ${"name"}
    ${7*8}
$(function(){
	 var msg = ${msg};
		if(msg!=null && msg != ''){
			alert(msg);
		} 
});
在此代码中,接收服务器返回的msg信息,用el表达式取值,却一直没有反应,应该在el表达式两边加引号,如下:

$(function(){
	 var msg = "${msg}";
		if(msg!=null && msg != ''){
			alert(msg);
		} 
});
然后就可以顺利取值了.
那么为什么这次需要加引号才有作用,我们先看一下

浏览器端的源代码
$(function(){
	 var msg = "ip不正确";
		if(msg!=null && msg != ''){
			alert(msg);
		} 
});
服务器给浏览器发送的是el表达式取值后的结果,也就是说el表达式是在服务器端完成的解析,如果el表达式的取值是字符串的话,如果不加引号,那么响应到浏览器的源码为:

var msg = ip不正确   是错误的js格式,
所以el表达式的取值如果是字符串的话就必须加上引号,如:var msg = "ip不正确"
才可以正常显示,
如果el表达式的值为对象或数值,就不用加引号,
这个原理是不是类似在mybatis文件中${}和#{}的区别,
${}是取值,不带引号,
#{}自动带引号,把值转换成字符串







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值