日期:2014-05-19  浏览次数:20778 次

菜鸟请教EL表达式的一个问题
在一个JSP页面中 我们定义了如下代码 <% String data="abcd" ;request.setAttribute("data",data); %> 我们用EL表达式取出数据通常这样写 ${data} 我想请问下 ("data",data) 前面一个data为什么有引号 后面一个没有带引号的其实就是"abcd" 他们之间到底怎么赋值的 谢谢

------解决方案--------------------
request.setAttribute("data",data) "data"是你给String类型的data起的名,data是String类型的 ${data}是根据"data"取的值 你把引号里的内容和EL表达式里的内容改改就能明白了
------解决方案--------------------
不带引号的data是你真正的data的值,这个值你赋给了带引号的data,带引号的data是你不带引号data的引用,既然是引用,就只是一个代号,什么都可以,你可以用“data”,也可以用“dat”,或者“anything”,总之是一个代号,但你要取值时要从带引号的里面取,也就是说取引号里面的值,即${data}或者${dat},${anything},要一一对应
------解决方案--------------------
简单的说 就是 一个值(data) 一个键(“data”)

------解决方案--------------------
你用过map吗?如果用过那么你就很容易理解了,put("data",data);前一个"data"表示key,如果你用get("data")那么你将获得到data这个对象,那后面的data很明显就是一个对象了