JSP——EL语法总结

前言:
        这周学习了EL和JSTL,内容是很简单,但知识点很琐碎,所以来总结一下。


1、EL概述:

1、 什么是 EL ?

  • EL即Expression Language(表达式语言),是一种简单的语言,便于简化JSP页面对变量和对象的访问。

2、EL的功能:

  • <jsp:getProperty />类似
  • 是简化的 <jsp:getProperty />

3、EL的语法结构:

  • ${ EL expression }
  • EL可以直接在JSP页面的模板文本中使用,也可以作为元素属性的值,还可以在自定义或者标准动作元素的内容中使用,但不能在脚本元素中使用 。
2、EL基本语法:
  • 一个EL元素必须以 ${ 开始,以 } 结束。
  • 它可以直接出现在模板文本中,也可以出现在JSP标记的属性中,例:
	姓名:${ expression1 }
	地址:${ expression2 }
	<jsp:include page= "${ expression3 }"/>
  • empty操作符(验证操作符)

是一个前缀操作符,用于检测一个表达式的值是否为null或者为empty。

例:${empty user},如果变量user不存在返回true,否则为false。

  • 条件操作符

条件运算符的格式:${A ? B : C} 如果A为true时,执行B代码;而如果A为false时,则执行C代码。

3、EL与JavaBean:

1、使用EL简化JavaBean的属性操作:

  • 如原来的:<jsp:getProperty name="myBean" property="name" /><%= myBean.getName()%>
    现可以简化成:${myBean.name}

2、可以使用EL实现对属性的嵌套访问:

  • 例:${person.address.phoneNumbers[1].number}

3、EL基本操作符:

  • ${ bean.name }(点操作符)
  • ${ bean[“name”] }([ ]操作符)

例:

${user.name}或${user[“name”]}实质是调用JavaBean对象user的getName()方法

当要存取的属性名称中包含一些特殊字符(非字母、数字符号)或动态取值([]中是变量)时,要用[]操作符。

例:${user.My-name}应当改为${user[“My-name”]}

4、EL与属性操作:

1、在EL中访问某变量:${ 变量名 }

  • 在EL中,有四个用于设定有效范围的对象:pageScope、requestScope、sessionScope、applicationScope;使用它们可以限定变量的查找范围。
  • 如果没有指定变量的有效范围,JSP容器会首先从页内有效范围查找,如果找到,返回相应的值;否则,EL会依次到请求有效、会话有效和应用有效范围中查找对应的变量,找到了,就返回相应的值。如果最终也没有找到,则返回null。

2、可在变量名前直接指定范围,只在指定的范围内查找变量,如只在会话有效范围内查找变量userName的语句为:

${ sessionScope.userName }

例1:如果通过<% request.setAttribute(“user”, “chengdong”); %>定义了一个属性对象。

要将这个属性对象输出,应该使用如下语句:

<% String s = (String)request.getAttribute(“user”);
 out.print(s); %>

<%=request.getAttribute(“user”) %>

如果采用表达式语言,则写出如下语句即可

${ user }

例2:如果有一个页面有效的属性对象,名叫customer,现在要输出它的firstName属性

<%pageContext.setAttribute(“customer”,customer)%>

customer对象的类型为NameBean,则相应语句为:

<% NameBean person = (NameBean) pageContext.getAttribute(“customer”); %>
<%=person.getFirstName() %>

如果采用表达式语言,采用如下语句即可:

${ customer.firstName }
5、EL与集合操作:

EL也可以实现简化对集合对象的访问:
例:

<%
		String[] str = {"hello","world"};
	
		List<String> list = new ArrayList<String>();
		list.add("zhangsan");
		list.add("lisi");
		
		Map<String,Integer> map = new HashMap<String,Integer>();
		map.put("a",100);
		map.put("b",200);
		map.put("c",300);
		
		request.setAttribute("str",str);
		request.setAttribute("list",list);
		request.setAttribute("map",map);		
		%>
		
		${str[0] }
		${map.a}<br>
		${list[1] }<br>

运行结果:
在这里插入图片描述

6、EL隐含对象

EL是和JSP是共用的一套隐式对象。

1、pageContext对象的访问方法:

  • EL中的pageContext对象其实就是当前JSP页面中的pageContext对象(即它们是同一个) 。
  • 通过EL中的pageContext对象可以访问到当前JSP页面中的所有隐含对象。

在这里插入图片描述
2、param和paramValues对象:

使用对象param可以访问请求的参数值,下面的语句会输出请求参数userName的值

${ param.userName }

它相当于:

 <%=request.getParameter(“userName”) %>

如果一个参数名对应多个值时,就需要使用paramValues对象了,获取其各个值的方法为:${ paramValues.user[i] }(其中i表示第几个值,从0开始取值)。

3、cookie对象:

  • 使用cookie可以快速访问引入的Cookie对象。
  • 要访问名字为userCookie的Cookie对象,方法为:${ cookie.userCookie }
  • 要访问它的名字、值、maxAge等的方法为:
     ${ cookie.userCookie.name }
	 ${ cookie.userCookie.value }
	 ${ cookie.userCookie.maxAge }

🆗,EL的知识点差不多就这些了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值