1.1 el表达式简介
1.2 el表达式demo
<%@page import="org.eclipse.jdt.internal.compiler.lookup.ImportConflictBinding"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="com.entity.People"%> <%@page import="java.util.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <!-- 直接取数据 --> <% pageContext.setAttribute("info1", "page范围属性"); request.setAttribute("info1", "request范围属性"); session.setAttribute("info1", "session范围属性"); application.setAttribute("info1", "application范围属性"); %> ${info1} <hr> <!-- 提交表单参数 --> <form action="el.jsp" method="psot"> name属性:<input type="text" name="name" /> <br> age属性:<input type="text" name="age" /> <br> <input type="submit" value="提交到el.jsp"> <hr> <!-- paramValues提交一组参数 --> <form action="el.jsp" method="post"> <input type="checkbox" name="hobby" value="java语言" />java语言 <input type="checkbox" name="hobby" value="C语言" />C语言 <input type="checkbox" name="hobby" value="php语言" />php语言 <br> <input type="submit" value="提交到el.jsp"> <hr> <!-- 对象操作 --> <% People zhangsan = new People(); zhangsan.setId(1); zhangsan.setName("zhangsan"); zhangsan.setAge(12); request.setAttribute("zhangsan", zhangsan); %> 编号:${zhangsan.id }<br> 姓名:${zhangsan.name }<br> 年龄:${zhangsan.age }<br> <hr> <!-- list操作 --> <% People p1 = new People(); p1.setName("张三"); People p2 = new People(); p2.setName("李四"); List<People> list = new ArrayList<People>(); list.add(p1); list.add(p2); request.setAttribute("list",list); %> <!-- 取list指定位置的数据 --> ${list[0].name} ${list[1].name} <hr> <!-- 运算符操作 --> <% request.setAttribute("num1", 10); request.setAttribute("num2", 3); request.setAttribute("flog1", true); request.setAttribute("flog2", false); %> 算术运算符<br> num1=${num1 },num2=${num2 }<br> num1+num2=${num1+num2 }<br> num1-num2=${num1-num2 }<br> num1-num2=${num1-num2 }<br> num1*num2=${num1*num2 }<br> num1/num2=${num1/num2 }<br> num1%num2=${num1%num2 } <hr> 关系运算符<br> flag1=${flag1 },flag2=${flag2 }<br> flag1 && flag2: ${flag1 && flag2 }<br> flag1 || flag2: ${flag1 || flag2 }<br> !flag1: ${!flag1} } <hr> 三目运算符<br> num1>num2: ${num1>num2?"yes":"no" } <hr> 判断空操作:${empty num1 } EL表达式中使用二元表达式<hr> <% session.setAttribute("user",new People("张三")); %> ${user==null? "对不起,您没有登陆 " : user.username} </body> </html>
1.3 是否启用el表达式
<%@ page isELIgnored="true" %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言
1.4 el表达式和小脚本取session 区别
EL表达式使用起来会更简洁,假如session中有一个属性A(attrA),那么EL和jsp脚本取值的方式如下:
EL表达式:${ sessionScope.attrA }
JSP脚本:<%=session.getAttribute("attrA")%>
个人还是觉得EL表达式比较简便一些,毕竟当初apache设计EL表达式的初衷就是为了用EL表达式来减少JSP脚本的编写。
诸葛