EL表达式和JSTL

本文介绍了JavaBean的概念,强调其在Java Web中的作用,以及如何在JSP中使用EL表达式进行数据访问。讨论了EL的标识符规范、基本用法和运算符,特别提到了`empty`运算符的用途。同时,文章涵盖了JSTL的基础知识,包括核心标签库中的`<jsp:useBean>`、`<jsp:setProperty>`、`<jsp:getProperty>`标签以及EL表达式的应用场景。此外,还讨论了请求参数的处理和页面上下文对象的使用。
摘要由CSDN通过智能技术生成

什么是JavaBean:

javaBean是一种规范,也就是对类的要求,他要求类的成员变量提供getter/setter方法。这样的成员变量称为JavaBean属性。JavaBean还要求提供无参构造器。

/**
 * 简单的JavaBean 
 *
 */
public class Student {
	private String id;
	private String name;
	private String password;
	public String getId() {
		return id;
	}
 
	public void setId(String id) {
		this.id = id;
	}
 
	public String getName() {
		return name;
	}
 
	public void setName(String name) {
		this.name = name;
	}
 
	public String getPassword() {
		return password;
	}
 
	public void setPassword(String password) {
		this.password = password;
	}
 
	public AdminVo(String id, String name, String password) {
		super();
		this.id = id;
		this.name = name;
		this.password = password;
	}
}

JavaBean是具有setter/getter方法的成员变量。只提供getter叫只读,只提供setter叫做只写。
jsp与JavaBean相关的标签动作。

<jsp:useBean>:创建JavaBean对象,以反射的机制实现

在当前页创建JavaBean对象,把创建的对象保存到域对象之中:

<jsp:javaBean id="实例名" class="包.类名" scope="保存的四种范围">

<jsp:useProperty>:设置JavaBean的属性

<jsp:getProprety>:获取JavaBean的属性

sp:useBean id="user" class="" scope="">
		<jsp:setProperty property="username" name="user" value=“admin”/>设置JavaBean中username的值
</jsp:useBean>
<jsp:useBean id="user" class="" scope="">
		<jsp:getProperty property="username" name="user"/>获取JavaBean中username的值
</jsp:useBean>

 EL表达式语言:

EL的作用,在javaweb开发中,我们所有的html和java以及jsp页面是核心,但是在普通开发中,一个好的jsp页面要实现代码的整洁性,尽量避免在jsp页面中出现scriptlet(<%…%>)代码,所以,jsp推出了EL表达式,完成输出。

定义标识符规范:

1.不能以数字开头。

2.不能包含单引号(')、双引号(“)、减号(-)和正斜杠(/)等特殊字符。

3.不能是EL隐式对象,如pageContext。

4.不能是EL中的保留字,如and、or、gt。

${}
	- EL不需要导包
	- 在EL中调用属性, 其实是调用的getXXX()方法

基本用法:


//jsp用法
<%=request.getAttribute("username")%>
<%=request.getAttribute("password")%>
//EL用法
${username}
${password}

运算符

点运算符( . ):用于访问jsp页面中某些对象的属性;

方括号运算符( [] ):

功能与点运算符相同,但是当属性名包含一些特殊符号时,只能使用方括号运算符

1.可以处理数组${requestScope.arr[0]}
2.可以容纳变量属性

${user["My-Name"]}

empty 运算符: 

用于判断某个对象(也适用于Set, Map, List)是否为null或" ", 基本语法如下:

${empty var}

注意:在应用EL表达式取值时, 没有数组的下标越界, 没有空指针异常, 没有字符串的拼接当对象属性名称首字母大写时, 前台会出现拿不到数据的情况

如果希望页面不适用EL,那么在page指令中加入isELlgnored=”true“属性。如果只希望某个不适应EL,则加上"",如${};
EL可以非常容易判断属性存不存在,scriptlet判断属性不存在时,会显示NULL,EL则显示空白。

EL表达式格式:

操作list和数组:${list[0]},${arr[0]}

操作bean和属性:${person.name}—>对应的是person.getName()方法。        

操作Map:${map.key},${map[‘key’]}—>对应的是map.get(Key)

EL一共11个内置对象,其中有十个是map类型的,最后一个是pageContext对象的:

1.pageScope

2.requestScope

3.sessionScope

4.applicationScope

5.param

6.paramValues

7.header

8.headerValues

9.initParam

10.cookie

11.pageContext
 

域对象一共有四个:

1.pageScope

2.requestScpoe

3.sessionScope

4.applicationScope

${pageScope.name}=pageContext.getAttribute("name");
${requestScope.name}=request.getAttribute("name");
${sessionScope.name}=session.getAttribute("name");
${applicationScope.name}=application.getAttribute("name");

 如果域中保存的是JavaBean对象,则可以通过EL表达式获取。因此,JavaBean不一定有setter,但一定要有getter方法。

请求参数相关内置对象

param和paramValues这两个内置对象用来接收请求参数的。
param是获取一个请求参数,paramValue是获取一组请求参数(如复选框)。这是在jsp页面接收参数所用到的。相当于request.getParameter()和request.getParameterValues().

pageContext

${pageContext.response.charaterEncoding}

 

 web域相关对象:

 param和paramValues对象:

在JSP页面中,经常需要获取客户端传递的请求参数,为此,EL表达式提供了param和
paramValues两个隐式对象,这两个隐式对象专门用于获取客户端访问JSP页面时传递的请求参数。接下来针对这两个对象进行讲解,具体如下。

param对象用于获取请求参数的某个值,它是Map类型,与request.getParameter()方法相同,在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是null。param对象的语法格式比较简单。

${param.num}

如果一个请求参数有多个值,可以使用paramValues对象来获取请求参数的所有值,该对象用于返回请求参数所有值组成的数组。如果要获取某个请求参数的第1个值。

${paramValues.nums [0]} 

示例:

 

  cookie

JSTL 基础

JSTL 标签库由五个功能不同的标签库组成,分别为:核心标签库、格式标签库、SQL 标签库、XML 标签库和函数标签库;使用这些标签库之前需要在 JSP 页面使用如下声明:

 格式:

// 核心标签库
	<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
	// 格式标签库
	<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
	// SQL 标签库
	<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
	//xml标签库
	<%@ taglib prefix="xml" uri="http://java.sun.com/jsp/jstl/xml"%>
	//函数标签库
 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

 标签库

核心标签库主要用于完成 JSP 页面的常用功能,包括 JSTL 的表达式标签、URL 标签、流程控制标签和循环标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值