弱问JSP中的<%= %>和${ }到底有什么区别?

如题所述

${}自动从内置对象中查找值
<%=%>须明确指定从哪个对象里取值
例 <%=x%> 取当前页面的x 值
<%=request.getAttrbutr("x")%>取request中的x值
${x}首先从当前页面找有没有x,有就显示它,没有,查找request,再没有就查找session,再没有就查找application
再就有,就没办法了,输出空值
<%=x%>如果x不存在,会报错
${x}就算x不存在,也不会报错追问

${}能取到的值也能取到,只是写起来烦一些,是吗?

追答

是的,${}多了一层自动查找的功能,你不用明确告诉它去哪取
有时候,多个内置对象中存了同一个对象名的话,还得用取
例如
你在页面定义了x=1
request中设置了x=3
${x}结果是1
结果是3

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-26

1、<%=%>是须明确指定从哪个对象里取值。

2、而 ${} 则是自动从内置对象中查找值。

例:

<%=x%> 取当前页面的x 值:

<%=request.getAttrbutr("x")%>取request中的x值

1、${x}首先从当前页面找有没有x,有就显示它

2、没有,就查找request,再没有就查找session,再没有就查找application。

3、再没有,就输出空值。

4、<%=x%>如果x不存在,会报错。

5、${x}就算x不存在,也不会报错 。

本回答被网友采纳
第2个回答  2011-11-03
<%=%> 是jsp语言, 可以输出当前页面定义的变量 而${}是el表达式 可以输出action里的值, 也可以输出session ruquest里的值 你可以查查el表达式的作用.
第3个回答  2011-11-03
<%= %>只能得到当前面定义的值
即你在这个页里有<% int a=100%>
你在下面才可以使用<%=a%>
${ }这个是el表达式
可以从上下文中得到值
具体你可以看一下
http://apps.hi.baidu.com/share/detail/15337789
要不就自己搜一下el表达试本回答被提问者和网友采纳
相似回答
大家正在搜