目录
七、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"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/param.jsp" method="get">
num1:<input type="text" name="num1"/><br/>
num2:<input type="text" name="num"/><br/>
num3:<input type="text" name="num"/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重填"/>
<hr/>
num1:${param.num1 }<br/>
num2:${paramValues.num[0] }<br/>
num3:${paramValues.num[1]}<br/>
<form/>
</body>
</html>
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"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${empty person }<br/>
${empty person }<br/>
-----------------------------------<br/>
1>3吗?${1>3 }<br/>
-----------------------------------<br/>
${user.my-name }<br/>
${user["my-name"] }<br/>
-----------------------------------<br/>
${person.name }<br/>
-----------------------------------<br/>
<%=(String) request.getAttribute("usernamee") %><br/>
<%=(String) request.getAttribute("password") %><br/>
-----------------------------------<br/>
-----${usernamee }-----<br/>
${password }<br/>
2020080605012杨骏<br/>
</body>
</html>
2020080605012