expression language(EL)

本文介绍了EL(Expression Language)的基本概念及其与JSP的区别,包括EL的特点、语法及隐式变量等内容,并深入探讨了如何将自定义函数插入JSP。此外,还详细解释了JSTL(JavaServer Pages Standard Tag Library)的特性、用途和核心标签的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.EL——${EL表达式}

   1.1:EL是一种自包含的编程语言,有运算符、语法、保留关键字。

2.EL特点

   2.1:与JSP相比对嵌套属性的支持。

   2.2:比JSP使用Bean简短而灵活。

   2.3:在表达式内EL不可以定义变量(标记库定义、)而JSP可以申明。

   2.4:EL有隐式变量,JSP有隐式对象。

3.EL语法

   3.1:隐式变量

       3.1.1:JSP(pageContext)——访问JSP的隐式对象

       3.1.2:作用域(pageScope/requestScope/sessionScope/applicationScope)——与对应作用域对象属性的名称和值相关联的Map类。

                *作用域的遍历——先找变量在找对象,从小到大;显示指定隐式XX就只在该作用域里找。

       3.1.3:请求参数(param/paramValues)——包含请求参数的Map类。

       3.1.4:请求头(header/headerValues)——包含请求头的Map类

       3.1.5:Cookie(cookie)——按名称存储请求附带的cookie的Map类。

   3.2:EL运算符

        3.2.1:访问属性(a.b)和集合(a[b])——当b为字符串是两者等价。

        3.2.2:EL算术、关系、逻辑运算符。

   3.3:函数——实现完全的业务逻辑和表现逻辑分离

        3.3.1:EL函数插入JSP步骤:

             3.3.1.1:方法类(java)——方法体;static类型;方法参数和返回值在EL中有效。

             3.3.1.2:标记库描述文件(tld)——函数名与方法连接。

                        *taglib、tlib-version

                        *function(name(方法名)/function-class(方法体)/function-signature)

                        *function-signature——参数、返回值的全数据类型;数据类型是全路径。

             3.3.1.3:部署描述文件(xml)——告诉容器在哪里找TLD文件;

                        *taglib

                        *taglib-uri——自定义的TLD位置,本地

                        *taglib-location——系统的TLD位置

             3.3.1.4:JSP页面(JSP)——通过标记库和函数名调用方法。

                        *<%@ taglib prefix="tld访问名" uri="xml的url"%>

                        *¥{tld访问名:方法}

4.JSP(标准)标记库JSTL——sun公司制定的一套标记库规范;由jstl.jar包(API)和standard.jar包(实现类)为JSP提供jstl能力

    4.0:特点

           4.0.1:标记的属性值是字符串。

    4.1:why——javaBean只是可复用的组件,独立于运行环境而包装了一些数据和业务逻辑功能,无法获得运行环境信息,无法与JSP页面进行更深层次的交互。

    4.2:核心——  ??——  http://java.sun.com/jsp/jstl/core    ——c

          4.2.1:通用

                     *<c:catch var="e"> 抛异常的代码 </c:catch>——异常

                     *<c:out value="${变量名}" default="默认值">  </c:out>——显示

          4.2.2:变量

                     *<c:set var="变量" value="值"> </c:set>——Map和Bean对象要用到target、property、value3个属性。

                     * <c:remove var="变量" scope="作用域对象"> </c:remove>

          4.2.3:流程

                     *<c:if test="${x=='9'}">${x} <c:>——测试值是标准,用单引号括起来;EL中else也用if标记实现。

                     *<c:choose></c:choose>——有多个<c:when>标记和一个<c:otherwise>属性 

                     *<c:forEach> </c:forEach>——有下标的用var/begin/end/step属性来实现;集合循环用var/items实现。

                     *<c:forTokens var="分隔后的值" items="需分隔字符串" delims="分隔符"> </c:forTokens>——字符串分隔

          4.2.4:URL

                     *<c:url value="路径" var="变量"> </c:url>——重写URL。有/则自动添加上下文;可以用<c:param name="键" value="值"/>添加参数。

                     *<c:import url=""> </c:import>——动态;跨服务器(无参、安全);可以用<c:param name="键" value="值"/>添加参数。

                     *<c:redirect url=""> </c:redirect>——重定向。可以用<c:param name="键" value="值"/>添加参数。

    4.3:xml——??——http://java.sun.com/jsp/jstl/xml——x

    4.4:数据库——??——http://java.sun.com/jsp/jstl/sql——sql

    4.5:国际化——??——http://java.sun.com/jsp/jstl/fmt——fmt

    4.6:函数——处理函数和字符串——http://java.sun.com/jsp/jstl/functions——fn

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值