EL、JSTL

一、EL表达式
	它只是JSP中的表达式,不是一种开发语言。
	基本语法:${EL表达式}
	1、获取数据
		EL表达式获取的对象如果是null,页面不会显示数据。因此,EL表达式中永远不会出现空指针异常
		p.name:调用域中名称为p对象的getName方法,点运算符是用于获取属性的取值的。
			.运算符:
			[]运算符:.运算符能做的,[]也能做。[]能做的,.不一定能做。
				比如${p.name}===${p['name']}==${p["name"]}
				[]运算符的优点:可以取不符合Java命名规范的东东。

	2、数学逻辑运算:
		empty运算符:如果判断的对象是null或者空字符串,都返回true。对于集合,即使集合对象本身不是null,没有任何元素,也返回true。
		EL表达式不支持字符串连接操作。

	3、获取JSP的内置对象(11大EL内置对象):难点,不要与JSP的内置对象和范围名称搞混
		11大EL隐式对象中,其中一个是表示自身对象外,其余都是表示的Map结构

		EL内置对象名称				Java类型									备注
		pageContext				javax.servlet.jsp.PageContext						与JSP中的内置对象完全相同

		剩余的都是代表的Map集合
		pageScope				java.util.Map								代表着PageContext页面范围域那个Map
		requestScope				java.util.Map								代表着ServletRequest请求范围域那个Map
		sessionScope				java.util.Map								代表着HttpSession会话范围域那个Map
		applicationScope			java.util.Map								代表着ServletContext应用范围域那个Map

		param					java.util.Map								代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串。
		paramValues				java.util.Map								代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串数组。

		header					java.util.Map								代表着请求消息头。key:头名称。value:头值,它是一个字符串。
		headerValues				java.util.Map								代表着请求消息头。key:头名称。value:头值,它是一个字符串数组。

		cookie					java.util.Map								代表客户端提交的Cookie的Map。key:cookie的name。value:cookie对象本身
		initParam				java.util.Map								代表着全局初始化参数(web.xml中context-param).key:参数名称。value:参数值

	4、调用普通类的静态方法(EL函数)
		编写步骤(自定义EL函数的编写步骤即自定义标签的编写步骤):
			a、编写一个普通的java类,提供一个静态方法
			public class FunctionDemo {
				public static String toUpperCase(String str){
					return str.toUpperCase();
				}
			}
			b、在JavaWeb应用的WEB-INF目录下建立一个扩展名是tld(taglib definition)的XML文件(参考Tomcat中的示例)。内容如下:
			<?xml version="1.0" encoding="UTF-8"?>
			<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
				xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
				version="2.0">
				<tlib-version>1.0</tlib-version>
				<short-name>myfn</short-name>
				<uri>http://www.jxn.cn/myfn</uri>
				<function><!-- 定义函数 -->
					<name>toUppercase</name>
					<function-class>cn.jxn.el.FunctionDemo</function-class>
					<function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature>
				</function>
			</taglib>
			c、(可选步骤)前提是把tld文件放到了WEB-INF目录下。
			告知应用,tld文件和tld中的uri的对应。修改web.xml,增加以下内容:
			<jsp-config>
				<taglib>
					<taglib-uri>http://www.jxn.cn/myfn</taglib-uri>
					<taglib-location>/WEB-INF/myfn.tld</taglib-location>
				</taglib>
			  </jsp-config>
			d、在JSP中使用
				用taglib指令,引入自定义的EL函数库
				<%@ taglib uri="http://www.jxn.cn/myfn" prefix="myfn"%>
				 ${myfn:toUppercase(p)}

二、JSTL
	JSTL中的核心标签库(替换掉JSP中的Java脚本)
	导入JSTL的需要的jar包:standard.jar jstl.jar
	c:if
		作用:判断是否为true,如果为true,那么标签的主体内容就会显示。
		属性:
			test:必须的。要求必须是boolean的。支持表达式(EL或Java表达式)
			var:保存test运算结果的变量
			scope: 保存的域范围。默认是page

	c:forEach
		遍历:数组、List、Set、Map
		属性:
			items:要遍历的目标对象。支持表达式
			var:变量名。指向当前遍历的集合中的一个元素
			begin:开始的索引(含)
			end:结束的索引(含)
			step:步长。默认是1
			varStatus:取一个名字,引用了一个对象。
				该对象有以下方法:
					int getIndex():当前记录的索引号。从0开始
					int getCount():当前记录的顺序。从1开始
					boolean isFirst():是否是第一条记录
					boolean isLast():是否是最后一条记录
			

时间: 2024-10-07 13:19:02

EL、JSTL的相关文章

2017.11.16 JavaWeb-------第八章 EL、JSTL、Ajax技术

第八章 EL.JSTL.Ajax技术 ~~ EL (expression language) 是表达式语言 ~~ JSTL(JSP Standard Tag Library) 是开源的JSP标准标签库 ~~ Ajax(Asynchronous JavaScript and XML )是运用JavaScript 和可扩展语言(xml) 1.表达式语言EL 输出动态信息有以下三种: JSP内置对象out :<%out.print("要输出的信息");%> JSP表达式:<

JSP、EL、JSTL

一.JSP 1.什么是JSP 从用户角度来看,就是一个网页,从程序员角度看待,其实是一个Java类,它继承了servlet,所以可以直接说jsp就是一个servlet 2.为什么有JSP html多数情况下用来显示静态内容,一成不变的.但是有时候我们需要在网页上显示一些动态数据,比如:查询所有学生的信息,根据姓名去查询某个具体学生.这些动作都需要去查询数据库,然后在网页上显示.html是不支持写Java代码的,JSP里面可以写Java代码. 3.怎么用JSP 3.1.三个指令 指令写法: <%@

[Java] JSP笔记 - EL、JSTL 常用标签

一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法.它是一种简单的语言,基于可用的命名空间(PageContext 属性).嵌套属性和对集合.操作符(算术型.关系型和逻辑型)的访问符.映射到 Java 类中静态方法的可扩展函数以及一组隐式对象. 三.使用 EL 语言前的配置

8 EL、JSTL、MVC、购物车、验证码

1.EL表达式 目的:从作用域中取出共享数据 ${p.属性名称} 使用EL获取当前应用的上下文路径 ${pageContext.getRequest().getContextPath()} 判断集合是否为空: ${empty list}:表示判断List既不能等于null,并且有元素,才会返回false 2.JSTL标签(消除jsp中的java代码) 拷贝jar包:jstl.jar standard.jar <%@ taglib uri="" prefix=""

el、jstl快速入门

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例 EL表达式 1.获取域对象中的值 2.EL表达式支持运算 ${ num1 + num2 } EL获取常用的WEB对象 1.pageScope 获取page域对象的值 2.requestScope 获取request域对象的值 3.sessionScope 获取session域对象的值 4.applicationScope 获取application域对象的值 * 例子:向某个域中来存入值 req

Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量) <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量 2.jsp的运行原理 jsp在运行时翻译成servlet index.jsp------>work/index_jsp.java----->work/inde

struts标签、OGNL表达式、JSTL标签、EL表达式

Struts标签.Ognl表达式.el表达式.jstl标签库这四者之间的关系和各自作用 我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用    Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码复用.Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求. Struts2的标签库有一个巨大的改进之

JSTL、EL、ONGL、Struts标签的区别与使用

 一.JSTL 来源 我们使用JSP开发信息展现非常方便,也可嵌入java代码用来实现相关逻辑,但同样带来了很多问题: jsp维护难度增加 出事提示不明确,不容易提示 分工不明确等 解决上面的问题可以使用定制标签库,Jstl使JSP开发开发者可以减少对脚本元素的需求,甚至可以不需要它们. 定义 JSTL(JSP StandardTagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持JSP1.2和Ser