天天看點

EL表達式的使用(1)什麼是el表達式(2)el表達式的使用 

EL表達式的使用

(1)什麼是el表達式

        是一套簡單的運算規則,用于給jsp标簽的屬性指派,也可以直接輸出。

(2)el表達式的使用 

    1)通路bean的屬性

        a.方式一   day10_2.e3.jsp                   

            ${user.name} :

              容器會依次從pageContext,request,session,application中查找(getAttribute)綁訂名稱為"user"的對象,找到該對象之後,會調用該對象的"getName"方法,最後輸出。          

              注:

                a1. 會将null轉換成""輸出。

                a2.找不到該對象,不報空指針異常,會輸出""。

                a3.可以使用pageScope,requestScope,sessionScope,application來指定查找範圍。

    day10_2.e3.jsp 代碼:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@page import="bean.*" %>
<html>
	<head></head>
	<body>
		<%
			User user = new User();
			user.setName("zs");
			user.setAge(22);
			request.setAttribute("user",user);
			
			User user1 = new User();
			user1.setName("wangwu");
			user1.setAge(24);
			session.setAttribute("user",user1);
		%>
		name:
		<%
			//User user1 = (User)request.getAttribute("user");
			//out.println(user1.getName());
		%><br>
		姓名:${user.name}<br>
		session上的 姓名:${sessionScope.user.name }
	</body>
</html>
           

bean.User.java代碼:

package bean;

public class User {
	private String name;
	private int age;
	private String[] interest;
	public String[] getInterest() {
		return interest;
	}
	public void setInterest(String[] interest) {
		this.interest = interest;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
           

        b.方式二   day10_2.e4.jsp

            ${user["name"]} / ${user['name']}

              注:

                b1.[]裡面可以出現綁訂名(變量)。

                b2.[]裡面可以出現從0開始的下标,用于通路數組中的某個元素。${user.interest[1] }(interest為數組)

      day10_2.e4.jsp 代碼:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@page import="bean.*" %>
<html>
	<head></head>
	<body>
		<%
			User user = new User();
			user.setName("zhangs");
			user.setAge(22);
			user.setInterest(new String[]{"撞球","足球","籃球"});
			request.setAttribute("user",user);
			
			User user1 = new User();
			user1.setName("wangw");
			user1.setAge(24);
			session.setAttribute("user",user1);
		%>
		name:${user["name"] }<br/>
		<%
			request.setAttribute("propname","age");
		%>
		<!-- []裡面可以出現綁訂名(變量) -->
		年齡:${user[propname] }<br/>
		<!-- []裡面可以出現從0開始的下标,用于通路數組中的某個元素 -->
		興趣愛好:${user.interest[1] }<br/>
	</body>
</html>
           

    2)進行一些簡單的運算

       運算的結果可以給jsp标簽的屬性指派,也可以直接輸出(e5.jsp)。

        a.算術運算  +,-,*,/,%

            注:  +号隻能求和(不能連接配接字元串)。

        b.關系運算  >,>=,<,<=,==,!=

        c.邏輯運算 && || !

        d.empty運算   

            判斷集合是否為空或者是否是一個空字元串。是,傳回true。

            以下四種情況都是true,其他都是false:

            d1,空字元串

            d2,空的集合(集合中沒有任何元素)

            d3,null

            d4,找不到值

     e5.jsp代碼示例:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@page import="java.util.*" %>
<html>
	<head></head>
	<body>
		<!-- 算術運算  +,-,*,/,% -->
		<!-- +号隻能求和(不能連接配接字元串) -->
		1+2=${1+2 }<br/>
		100+200=${"100"+"200" }<br/>
		
		<!-- 關系運算  >,>=,<,<=,==,!= -->
		<!-- 結果都是true/false -->
		1>0?${1>0 }<br/>
		<%
			request.setAttribute("str1","abc");
			request.setAttribute("str2","abcd");
		%>
		${str1 == str2 }<br/>
		${str1 == "abc"}<br/>
		${sessionScope.str1 == "abc" }<br/>
		
		<!-- 邏輯運算 && || !  -->
		
		<!-- empty運算  結果為true/false-->
		<!-- 判斷集合是否為空或者是否是一個空字元串;是,傳回true -->
		<%
			request.setAttribute("str3","");
		%>
		空字元串:${empty str3 }<br/>
		<%
			List list = new ArrayList();
			//list.add("");
			request.setAttribute("list",list);
		%>
		空的集合:${empty list }<br/>
		<%
		request.setAttribute("obj",null);
		%>
		值為null:${empty obj}<br/>
		找不到值:${empty sss }<br/>
	</body>
</html>
           

    3)讀取請求參數值 (e6.jsp)

        a. ${param.username}    等價于request.getParameter("username");

        b.${paramValues.city}    等價于request.getParamterValues("city");

     e6.jsp示例代碼:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<html>
	<head></head>
	<body>
		username:${param.username }<br/>
		interest:${paramValues.i [1] }<br/>
	</body>
</html>