el表达式是什么?
标签技术当中,定义的一套计算的规则,用于给标签的属性赋值,现在,也可以直接将计算的结果输出。
el表达式的基本语法如果只是使用EL表达式不需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/Servlet2.4规范即可。
${el表达式}
el表达式的形式:
a, 访问bean的属性
方式一:
${user.name},jsp引擎会依次从pageContext,request,session,application中查找绑订名为"user"的对象,如果找到,调用getName()方法并输出。如果找不到,则输出""。
可以指定查找的范围:
${pageScope.user.name}
${requestScope.user.name}
${sessionScope.user.name}
${applicationScope.user.name}
方式二:
${user["name"]}或者是${user[propName]},"[]"的内容可以是一个变量,也可以是0,1,2这样的下标。
b,访问请求参数
${param.name}: 相当于request.getParameter("name");
${paramValues.interest}:相当于request.getParameterValues("interest");
c, 计算表达式的值,该值一般用于给标签的属性赋值,或者直接输出。
el表达式可以进行算术运算:
可以进行"+","-","*","/","%",但是"+"号运算不能连接字符串。
逻辑运算:可以进行"&&","||","!",也可以使用"and","or","not"代替。
关系运算:可以进行"==","!=",">","<",">=","<="六种关系运算,也可以使用"eq","nq","lt","gt","le","ge"代替.
示例:
从sessionScope里查找user1对象的name属性:
name:${sessionScope.user1.name}
访问bean的属性的另外一种方式:name:${user1["name"]}<br/>
<%
request.setAttribute("propName","name");
%>
name:${user1[propName]}<br/>
算术运算:
1+1:${1+1} 【2】
"123" + "123" =${"123" + "123" } 【246】
关系运算:
${"abc"== "abc"} 【true】
<%
request.setAttribute("str","abc");
%>
${"abc" eq str} 【true】
empty: 判断一个值是否为空。
以下四种情况,结果为true。
情况一:找不到对应的对象。
情况二:值为null。
情况三:空字符串
情况四:集合内容为空。
empty运算<br/>
找不到对应的对象。
${emptyaaa}<br/>
<%
request.setAttribute("obj",null);
%>
值为null。
${emptyobj}<br/>
<%
request.setAttribute("str1","");
%>
空字符串
${empty str1}<br/>
<%
List lists = new ArrayList();
request.setAttribute("lists",lists);
%>
集合内容为空。
${empty lists}