EL表达式的语法是${expression},它的主要作用是获取域中的变量,不能获取域之外的变量。
EL表达式不能使用在java代码块和表达式块。注意,jsp页面默认不识别EL表达式,需要使用page指令 <%@page isELIgnored="false" %>,jsp才能正确运行EL表达式。EL现在已经被包含进了jsp,使用EL表达式不需要引入包。
从四大域中获取数据:如${name}。这种写法没有指定确定的域,jsp会按照域的作用范围从小到大去查找,page>request>session>application。
EL有四个内置的域对象:pageScope,requestScope,sessionScope,applicationScope,可以用来获取指定域中的变量。
指定在某个域中去查找:如${pageScope.name}。指定在page域中去找name。
它也可以获取域中对象的属性:${pageScope.user.name}这个就是获取page域中uesr对象的name属性。
EL可以访问数组,集合,map中的数据。(当然这些都要先放在域中才能访问)
数组:${键名[index]},index不合法不会异常,在页面上无显示而已。
集合:${键名[index]}
map:${键名.属性名}
这些是常用访问方法,还有其他的访问方法。
EL中的param,params可以获取请求参数
${param.name}等价于request.getParameter("name");
${params.name}等价于request.getParameterValues("name")大多用于获取客户端的数组数据,如页面的复选框的值。
EL也可以进行常见的运算和逻辑判断
${pageScope.a + requestScope.b}
${pageScope.a ==requestScope.b},结果是true或者false
EL还有一个empty运算符,用来判断变量是不是为空
${empty name},结果是true,false。
EL还可以自定义函数。
在实际中一个常用的 *** 作是获取应用的根目录
${ pageContext.request.contextPath }
结果是/jspTest_war_exploded
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)