${valuename}用于取得Request,Session,Application或Page范围变量的值,相当于xxx.getAttribute("valuename")。
像<c:set var="valuename" value="..." scope="..."/>的值,因为保存在某个范围中,所以可以用${valuename}取的。
但是像如下的片段:
<%
float price = 1+2;
%>
不能用用${price}取得,因为变量price并没有保存在某个范围中,不能说它是page范围的。 可以用<%=price %>取的。
<%=...=%>不但能取得“范围变量”的值,也能取得像price的值,它的表达能力更强,只是有些地方用${...}更方便。
上面的理解有问题吗,请指教!
像<c:set var="valuename" value="..." scope="..."/>的值,因为保存在某个范围中,所以可以用${valuename}取的。
但是像如下的片段:
<%
float price = 1+2;
%>
不能用用${price}取得,因为变量price并没有保存在某个范围中,不能说它是page范围的。 可以用<%=price %>取的。
<%=...=%>不但能取得“范围变量”的值,也能取得像price的值,它的表达能力更强,只是有些地方用${...}更方便。
上面的理解有问题吗,请指教!
<%
String str = (String)session.getAttribute("myString");
out.println(str);
%>
或者再
<%=str%>而${} 就是为了简化从 page,request,session,application 拿到数据的操作而作的标签,实际内部执行时,还是得和上面一样先取出来才行。你可以理解成他是一个[ 快捷方式 ] 或者 [批处理], 他替你做了好多事。
呵呵...初学者可能会遇到相同的问题...
其实${}形式就是所谓的el表达式,用它就可以在jsp页面的内建对象中(例如:page,request,session,application)直接取值来用.而<% %>可以理解为在jsp中加java代码的标签,就是在这里面你可以写java代码,在编译器编译成java源代码时会原封不动的copy到servlet的service方法中,而像<%= %>在编译成源代码时会时编译成类似out.print()之类的放在service方法的相应地方.我再申明一点,每个jsp页面都将被编译成一个servlet类...
<% %> 等同于java代码,需要什么都得自己拿到,<% %> 可以理解为在jsp中加java代码的标签,就是在这里面你可以写java代码.
一般来讲,尽量不要在JSP页面中加如过多的<% %>.
其实${}形式就是所谓的el表达式,用它就可以在jsp页面的内建对象中(例如:page,request,session,application)直接取值来用. 而 <% %> 可以理解为在jsp中加java代码的标签,就是在这里面你可以写java代码,在编译器编译成java源代码时会原封不动的copy到servlet的service方法中,而像 <%= %> 在编译成源代码时会时编译成类似out.print()之类的放在service方法的相应地方. 我再申明一点,每个jsp页面都将被编译成一个servlet类...
完全正确,呵呵