关闭

EL表达式的使用

185人阅读 评论(0) 收藏 举报
分类:

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>







       
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:196407次
    • 积分:5294
    • 等级:
    • 排名:第5488名
    • 原创:351篇
    • 转载:36篇
    • 译文:0篇
    • 评论:17条
    文章分类