JavaWeb初级学习 之 EL表达式&JSTL表达式

一、EL表达式


1为什么会出现EL

在JSP2.0之后不建议使用JSP表达式和JSP脚本片段,建议使用EL表达式代替JSP表达式,使用JSTL代替JSP脚本片段


2.EL简介

EL的全称:Expression Language,表达式语言
EL的格式:${表达式}
EL主要用来将域对象中的属性输出到页面
EL表达式默认是全域查找 

先从page域中查找,找到直接返回,找不到再继续在其他域中找,如果在application域中也找不到则返回一个空串


EL为我们提供了 四个Scope对象,用来获取指定域中的对象,这四个Scope对象是将域对象中的域单独拿了出来,这四个Scope对象分别是pageScope、requestScope、sessionScope、applicationScope
pageScope:用来获取page域中的对象
requestScope:用来获取request域中的对象
sessionScope:用来获取session域中的对象

applicationScope:来获取application域中的对象


如果域对象中的属性名比较特殊,可以通过以下方式获取域对象中的值:获取request域中的对象:${requestScope['hello-kitty']}
获取JavaBean中的属性值
EL表达式不能直接获取在JSP脚本片段中声明的对象,必须将对象放到域对象中才能获取
通过对象.属性名的方式获取JavaBean的属性值,此时是调用了getXXX方法
如果通过EL表达式获取的对象的属性还是一个对象,可以一直点下去

<%
	Student stu = new Student(1,"孙悟空",520,new Address(1,"花果山"));
	//将stu放到域对象中
	request.setAttribute("stu", stu);
%>
${stu.han }

${stu.address.name }

3.EL中的十一个隐含对象

一个我们比较熟悉的
pageContext
类型:PageContext
作用:与JSP中的作用一样,一个顶JSP中的九个隐含对象,通过它可以获取JSP中的其他隐含对象

使用EL表达式获取request对象:

${pageContext.request}

使用EL表达式获取项目路径:

  ${pageContext.request.contextPath}


四个Scope对象

pageScope
类型:Map
作用:获取page域中的对象
requestScope
类型:Map
作用:获取request域中的对象
sessionScope
类型:Map
作用:获取session域中的对象
application
类型:Map

作用:获取application域中的对象


其他六个隐含对象
header 
类型:Map
作用:获取请求头中的信息
headValues
类型:Map
作用:获取请求头中一个键对象多个值的情况
param
类型:Map
作用:获取请求参数
paramValues
类型:Map
作用:获取请求参数中一个键对应多个值的情况
cookie
类型:Map
作用:根据cookie的名称获取Cookie对象
initParam
类型:Map

作用:获取当前Web应用的初始化参数


4.EL中的运算

在EL表达式中可以直接进行加、减、乘、除等运算
在EL表达式中有一个我们常用的运算符:empty
empty与null有以下不同
空串时:null返回false;empty返回true
空集合时:null返回false;empty返回true
我们通常使用empty来判断一个字符串或集合是否为空


二、JSTL表达式


1.JSTL简介

JSTL的全称:JSP Standard Tag Library,JSP的标准标签库

2.标签库

core:核心标签库,我们又称它为c标签
fn:函数标签库,需要结合EL表达式使用,里面定义了一些对字符串的操作
fmt:格式化标签库,里面定义了对时间、日期、数字的国际化

3.核心标签库

又称它为c标签,使用它需要导入两个jar包
taglibs-standard-impl-1.2.1.jar          

taglibs-standard-spec-1.2.1.jar
要使用c标签还需要导入核心标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

常用的标签


out标签





set标签









${pageScope.username }
${requestScope.username }

remove标签



${pageScope.username }
${requestScope.username }
${sessionScope.username }
${applicationScope.username }

if标签



	请输入用户名:


	欢迎您,${param.username }

choose标签
<%
	int age = 40;
	request.setAttribute("age", age);
 %>





	
		大龄剩女
	
	
		青春靓女
	
	
		花季少女
	
	
		小屁孩儿
	

forEach标签




	${index }


<%
	List list = new ArrayList();
	list.add("刘涛");
	list.add("蒋欣");
	list.add("王子文");
	list.add("杨紫");
	list.add("王凯");
	request.setAttribute("list", list);
%>


	${star }





你可能感兴趣的:(【JavaWeb】,JavaWeb从入门到精通,java,web,EL表达式,JSTL表达式)