EL表达式和JSTL

什么是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。


基本用法:

运算符
点运算符( . ):用于访问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
 

 

 

如果域中保存的是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对象的语法格式比较简单。
 

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

 示例:

 

 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 标签、流程控制标签和循环标签。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值