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

2024-11-14 22:14:59
推荐回答(2个)
回答1:

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表达式就是个值。我也是才学的。有错请提出

回答2:

好好看书