七、EL表达式和JSTL
7.1 初识JavaBean
什么是JavaBean
JavaBean是java开发语言中一个可以重复使用的组件,本质是一个Java类。为了规范JavaBean的开发,Sun公司发布了JavaBean的规范,要求一个标准JavaBean组件需要遵循一定的编码规范:
它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动生成的默认构造方法。
它提供公共的setter方法和getter方法,让外部程序设置和获取JavaBean的属性。
一个简单的JavaBean:
package cn.itcast.chapter07.javabean;
public class Book {
private double price;
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price=price;
}
}
7.1.2 访问JavaBean的属性
在讲解面向对象时,经常会使用类的属性,类的属性指的是类的成员变量。
类的成员变量和属性的关系:
在普通的Java来中类的属性就是成员变量
在JavaBean里面成员变量和属性是不同的
在JavaBean 里面private String name; 中name就是成员变量
在JavaBean 里面的属性就是get或者set后面的字段名称(字段名称的首字母大写),就是属性。
package cn.itcast.chapter07.javabean;
public class Student {
private String name;
private String id;
public String getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
7.1.3 BeanUtils工具
BeanUtils 工具是由apache软件基金会提供的一套封装数据到JavaBean的工具类,使用简单方便,
BeanUtils是第三方的工具(插件),所以需要导入jar包:
常用的api:
向javaBean的属性设置值:
setProperty(javaBean对象,javaBean的属性,javaBean属性的值);
获取javaBean属性的值:
getProperty(javaBean对象,javaBean的属性);
向javaBean的属性设置值:
populate(javaBean对象,map对象);
7.2 EL表达式
7.2.1 初识EL
EL表达式可以简化JSP页面的书写。
EL表达式格式:
${表达式}
${表达式}中的表达式必须符合EL语法要求
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
num2:
num3:
num1:${param.num1 }
num2:${paramValues.num[0] }
num3:${paramValues.num[1]}
7.2.2 EL中的标识符
规范:
不能以数字开头
不能是EL中的保留字,如:and、or、gt。
不能是EL隐式对象,如:pageContext。
不能包含单引号(’)、双引号(")、加减号(+ -)、正斜杠(/)等特殊字符。
7.2.3 EL中的保留字
7.2.4 EL中的变量
EL表达式中的变量就是一个基本的存储单元,EL表达式可以将变量映射到一个对象上。
格式:
${product}
product就是一个变量。
7.2.5 EL中的常量
布尔常量:true、false
整型常量:与Java中的十进制的整型常量相同
-2的63次方 与 2的64次方-1 之间的整数
浮点数常量:用整数部分加小数部分表示(就是一个小数),也可用指数形式表示
4.9E-324 ~ 1.8E308之间的浮点数
字符串常量:用单引号或双引号引起来的一连串字符。
Null常量:Null常量用于表示变量引用的对象为空,只有null一个值
7.2.6 EL中的运算符
点运算符(.)
用于访问JSP页面中某些对象的属性
${customer.name}
方括号运算符([ ])
当获取的属性名中包含一些特殊符号,就只能使用方括号运算符来访问该属性
${user[“my-name”]}
算术运算符
加(+)、减(-)、乘(*)、除(/)、取余(%)
比较运算符
等于(==)、不等于(!=)、小于(<)、大于(>)、小于等于(<=)、大于等于(>=)
逻辑运算符
逻辑与(&&)、逻辑或( || )、逻辑非(!)
empty运算符
EL表达式中的empty运算符用于判断某个对象是否为null或“ ”,结果为布尔类型
${empty var}
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
${empty person }
-----------------------------------
1>3吗?${1>3 }
-----------------------------------
${user.my-name }
${user["my-name"] }
-----------------------------------
${person.name }
-----------------------------------
<%=(String) request.getAttribute("usernamee") %>
<%=(String) request.getAttribute("password") %>
-----------------------------------
-----${usernamee }-----
${password }
2020080605012杨骏