在JSP页面中嵌入了一部分Java代码,本以为Java代码中声明的变量可以通过${var}获得变量值输出,结果没有任何输出,
EL表达式是用在对对象值、属性制的访问 ${user.id}、request、session、pageContext、application属性值的访问以及自定义函数的使用上
这些对象user 都是属于作用域范围对象 或者pageContext 以及环境信息的隐含对象
在访问属性值的时候 如果不指明属性所属的隐含对象 则从作用域范围内查找属性值
el表达式获取list集合的长度
在页面顶部使用指令标识 声明所使用的标签库 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>这是核心库
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>函数库
首先这个list得是内置对象的属性 比如隐含对象pageContext request response out cookie session exception page servletContext
以及作用域范围的对象 pageScope requestScope sessionScope 因为任何一个变量都是有作用域范围的属性,属性值是java.util.Map集合的对象。
el表达式除了可以访问这些作用域范围的对象还可以访问页面上下文对象pageContext 并通过pageContext对象来获得request response等等,注意这些都和作用域范围对象不同
${fn:length(list)}即可获得list集合的长度
另外需要注意 使用<jsp:useBean id="xxx" scope="xxx"class="xxx"/>这里如果不指明scope属性值 则默认为pageScope