EL表达式学习(一) 一、初次接触EL表达式: 二、使用EL表达式从不同类型的容器中获得数据: 三、EL中可执行的算式:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL表达式接触</title>
  </head>
  <body>
	<%
	String name = "mzy";
	// 把变量放入域对象中           name    value
	pageContext.setAttribute("name", name);
	pageContext.setAttribute("name", name, PageContext.REQUEST_SCOPE);
	 %>
	 <%=name %>
   	<br/>
   	EL表达式:${name}
   	<br/>
   	<%-- 
   	1) 以上的写法,EL从四个域中自动搜索
   	${name} 等价于<%=pageContext.findAttribute("name") %>
   	--%>
   	
   	<%-- 
   	2) EL从指定的域中获取
   		pageScope:page域
   		requestScope:request域
   		sessionScope:session域
   		applicationScope:application域
   	 --%>
   	指定域获取的EL:${pageScope.name}
   	${name }
   	 <%
		response.sendRedirect("04pre_04el.jsp");
	 %>
  </body>
</html>

二、使用EL表达式从不同类型的容器中获得数据:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ page import="entity.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL表达式获取不同类型的数据</title>
  </head>
  <body>
   <%--
   1) 普通的字符串
    --%>
    <%
    	String email = "zhangsan@qq.com";
    	// 一定要把数据放入域中
    	pageContext.setAttribute("email", email);
     %>
    	 普通字符串:${email }
     <hr/>
     <%--
     2) 普通的对象
     EL表达式的属性表示调用对象的getXX方法。例如
     stu.name 调用Student对象的getName()方法 
      --%>
      <%
      Student stu = new Student("mzy", "123456");
      pageContext.setAttribute("stu", stu);
       %>
       普通的对象:${stu} <br/>
       对象的属性: ${stu.name } ---- ${stu.id }  
    <hr/>
    <%--
    3) 数组或List集合(集合只能是List集合)
     --%>
     <%
     	// 数组
     	Student[] stus = new Student[3];
     	stus[0] = new Student("Jack", "123456");
     	stus[1] = new Student("Bob", "123456");
     	stus[2] = new Student("Rose", "123456");
     	
     	pageContext.setAttribute("stus", stus);
     	// List
     	List<Student> list = new ArrayList<Student>();
     	list.add(new Student("Jack", "654321"));
     	list.add(new Student("Bob", "654321"));
     	list.add(new Student("Rose", "654321"));
     	pageContext.setAttribute("list", list);
      %>
      <%--
      		在EL表达式中,不能循环,取元素只能单个单个的取		
       --%>
       	数组:<br/>
       ${stus[0].name } -- ${stus[0].id }<br/>
       ${stus[1].name } -- ${stus[1].id }<br/>
       ${stus[2].name } -- ${stus[2].id }<br/>
       <hr/>
       list集合:<br/>
       ${list[0].name } -- ${list[0].id }<br/>
       ${list[1].name } -- ${list[1].id }<br/>
       ${list[2].name } -- ${list[2].id }<br/>
       <hr/>
       <%--
        4) Map集合     
          --%>
          <%
          	Map<String,Student> map = new HashMap<String,Student>();
          	map.put("001",new Student("eric","123456"));
          	map.put("002",new Student("jacky","123456"));
          	map.put("003",new Student("rose","123456"));
          	pageContext.setAttribute("map",map);
           %>
           Map集合: <br/>
           ${map['001'].name } - ${map['001'].id }<br/>
           ${map['002'].name } - ${map['002'].id }<br/>
           ${map['003'].name } - ${map['003'].id }<br/>
  </body>
</html>

三、EL中可执行的算式:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL中可以执行的算式</title>
  </head>
  <body>
   <%--
   	1) 算数表达式: + - * /
    --%>
   <%
   		int a = 10;
   		int b = 5;
   		pageContext.setAttribute("a", a);
   		pageContext.setAttribute("b", b);
    %>
    ${a+b }<br>
    ${a-b }<br>
    ${a*b }<br>
    <hr>
    
    <%-- 
    2) 比较表达式:> < >= <=	
     --%>
    ${a>b }<br>
    ${a==b }<br>
    <hr>
    
    <%--
    3) 逻辑表达式: &&、||、! 
    --%>
    ${true&&true }<br>
    ${true||false }<br>
    ${!true }<br>
    ${!(a>b) }
    <hr/>
	<%--
	4) 判空表达式	empty
		null: == null
		空字符串:==""
	 --%>    
    <%
    // String name = null;
    String name01 = null;
    String name02 = "";
    pageContext.setAttribute("name01", name01);
    pageContext.setAttribute("name02", name02);
     %>
     null:${name01 == null }<br>
           空字符串:${name02 == "" }<br>
     null或空字符串:${name01 == null || name01 =="" }<br>
     null或空字符串可以直接用empty进行判断:${empty name01 }
  </body>
</html>