jstl为什么能用EL表达式。EL不是类似<%= %>的吗,它怎么可以在JSTL中赋值:value="${ i }"

如题所述

jsp会被翻译成servlet。
${i}会被翻译成:
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${i}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null, false));
也就是说el表达式就是一个值,只是在翻译过程中,用out.write输出了。
<%=i%>会被翻译成out.print(i)
楼主可以在tomcat下的work下具体的虚拟主机下的看翻译后的源码。
jstl,是当遇到标签,就创建对应的对象,执行标签体。
总结:el表达式就是个值。我也是才学的。有错请提出
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-08-11
好好看书
相似回答