`

JSTL和EL表达式之间有什么关系

阅读更多

EL相关概念
JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段。所以我们先来学习EL表达式

EL主要用于查找作用域中的数据,然后对它们执行简单操作;它不是编程语言,甚至不是脚本编制语言。通常与 JSTL 标记一起作用,能用简单而又方便的符号来表示复杂的行为。

EL基本格式
EL表达式的格式:用美元符号($)定界,内容包括在花括号({})中;
例如: ${loginInfoBean.suser}

此外,您可以将多个表达式与静态文本组合在一起以通过字符串并置来构造动态属性值;
例如:Hello {loginInfoBean.suser} ${loginInfoBean.spwd}

EL语法组成-标识符
EL表达式由标识符、存取器、文字和运算符组成。

标识符用来标识存储在作用域中的数据对象。EL 有 11 个保留标识符,对应于 11个EL隐式对象。除了11隐式对象外,假定所有其它标识符都用来标识作用域的变量。

标识符
例:
${abc} 相当于<%=pageContext.findAttribute(“abc”)%>
${og_1} <%=pageContext.findAttribute(“og_1”)%>
…等等;就是说{}内的标识符除了11个保留字之外都表示作用域中的数据对应的名.

${requestScope}中的requestScope是11个EL隐式对象之一,它不再表示作用域中数据,而是表示request作用域;

EL隐藏对象
pageContext PageContext 实例对应于当前页面的处理
pageScope 与页面作用域属性的名称和值相关联的Map类
requestScope 与请求作用域属性的名称和值相关联的Map类
sessionScope 与会话作用域属性的名称和值相关联的Map类
applicationScope 与应用程序作用域属性的名称和值相关联的Map类
param 按名称存储请求参数的主要值的 Map 类
paramValues 将请求参数的所有值作为 String 数组存储的 Map 类
Header 按名称存储请求头主要值的 Map 类
headerValues 将请求头的所有值作为 String 数组存储的 Map 类
cookie 按名称存储请求附带的 cookie 的 Map 类
initParam 按名称存储 Web 应用程序上下文初始化参数的Map类

EL存取器
存取器用来检索对象的特性或集合的元素。

存取器: 通过 “[]” 或 “.” 符号获取相关数据

例:
${userBean.suser} 或 ${userBean[“suser”]}
//获取输出bean中的suser属性值;
${mcType[“id”]} //获取map中key为id对应的值;

EL运算符
运算符允许对数据和文字进行组合以及比较。

EL运算符:
类别 运算符
算术运算符 +、-、*、/(或 div)和 %(或 mod)
关系运算符 ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le) 和 >=(或ge)
逻辑运算符 &&(或 and)、||(或or)和 !(或 not)
验证运算符 empty
验证运算符(empty):对于验证数据特别有用。empty 运算符采用单个表达式作为其变量(也即,${empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。

EL文字
文字表示固定的值 — 数字、字符、字符串、布尔型或空值。

在 EL 表达式中,数字、字符串、布尔值和 null 都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为 true 和 false

JSTL是什么
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL1.0 由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行JSP页面的国际化。xml 库包含一些标记,这些标记用来操作通过XML表示的数据,而 sql 库定义了用来查询关系数据库的操作。 两个 JSTL 标记库验证器允许开发人员在其 JSP 应用程序中强制使用编码标准。

如果要使用JSTL,则必须引用jstl.jar和 standard.jar两个包。
为什么要用JSTL
我们JSP用于开发信息展现页非常方便;也可以嵌入java代码(scriptlet、表达式和声明)代码用来实现相关逻辑控制。看下面程序。但这样做会带来如下问题:
jsp维护难度增加;
出错提示不明确,不容易调试;
分工不明确;(即jsp开发者是美工,也是程序员);
最终增加程序的开发成本;
解决上面的问题可以使用定制标记库,JSTL使JSP开发者可以减少对脚本元素的需求,甚至可以不需要它们,从而避免了相关的维护成本。使分工更明确。

<% if (session.getAttribute(“user”).equals(“member”)) { %>
<p>Welcome, member!</p>
<% } else { %>
<p>Welcome, guest!</p>
<% } %>
JSTL一般配合EL一起使用,因此先看看EL.

JSTL部署
在EE应用程序中部署JSTL有两种方式:
已存在的工程上部署
将jstl.jar和standard.jar两个包考到现有工程
WebRoot / WEB-INF / lib 目录下
将相关的 .tld文件考到现有工程 WebRoot / WEB-INF 目录下;

也可通过eclipse在已存在
工程上部署
新建工程的时候直接部署
在JSP使用JSTL-core标签库
core在jsp中的使用:
在 web.xml 中添加
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
</jsp-config>
在jsp文件中添加
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>或<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
使用<c:out value=“HelloWorld” />

分享到:
评论

相关推荐

    JSTL以及EL表达式所需jar包

    总的来说,JSTL和EL表达式是JSP开发中不可或缺的部分,它们提供了更加优雅的代码组织方式,降低了维护成本,并提高了开发效率。通过理解并熟练运用这两个工具,开发者能够更好地构建健壮且易于维护的Web应用程序。

    JSTL,EL表达式语法简介

    **JSTL与EL的协同工作**:在JSP页面中,EL表达式通常与JSTL标签一起使用,EL负责数据的获取和计算,而JSTL标签则负责页面的逻辑控制。例如,使用EL表达式和`&lt;c:if&gt;`标签可以实现简单的条件判断: ```jsp ${user != ...

    jstl与el表达式所需jar

    EL表达式通常以`${}`包裹,它能够直接访问作用域中的对象,如request、session、application等。EL的优势在于其简洁性,可以快速地访问和操作数据,而无需编写大量的Java脚本。 **相关jar包**: - **standard.jar**...

    JSTL自定义EL表达式

    本资源主要讲解了如何在JSTL中定义和使用自定义的EL表达式,这对于提高JSP页面的可读性和可维护性至关重要。 首先,理解JSTL的基础概念。JSTL由几个核心标签库组成,如fmt、fn、sql、xml等,它们提供了处理日期和...

    JSTL和EL表达式源码.rar

    在JSP页面中,使用`&lt;c:forEach&gt;`标签迭代用户列表,通过EL表达式 `${user.name}` 和 `${user.age}` 输出用户的名字和年龄。 **总结** JSTL和EL是Java Web开发中不可或缺的工具,它们提高了代码的可读性和可维护性。...

    jstl—el表达式

    【JSTL与EL表达式详解】 JSTL(JSP Standard Tag Library)是Java服务器端的一个重要组件,主要用于简化JSP页面的编程,提供了一系列的标签库来处理常见的任务,比如数据处理、URL操作、国际化等。它由Apache ...

    JAVAEE实验报告EL表达式和jstl标签库的使用.pdf

    JAVAEE 实验报告 EL 表达式和 JSTL 标签库的使用 EL 表达式(Expression Language)是一种在 JSP 页面中使用的脚本语言,用于简化 JSP 页面的开发。EL 表达式可以访问 JSP 页面中的变量、对象和集合,进行逻辑操作...

    JSTL与El表达式源代码

    例如,`&lt;c:out&gt;`是JSTL中的一个核心标签,用于输出变量或表达式的值,而`${}`则是EL表达式的符号,用于访问和操作Java对象的属性。 **Session**是HTTP协议中的一个概念,用于在多个HTTP请求之间保持状态。在Web开发...

    JSTL和EL表达式的部门例子

    EL表达式是一种强大的表达式语言,它允许在JSP页面中进行数据的访问和计算。EL表达式的语法通常为`${expression}`,它会根据表达式中的关键字在不同的作用域(page、request、session、application)中查找对应的值...

    struts jstl el表达式示例代码

    struts jstl el表达式示例代码 struts jstl el 表达式 源码

    JSTL - EL表达式详解

    JSTL 1.1规范中的EL可以独立于JSTL标签库使用,JSP2.0容器能够直接解析和执行EL表达式。这使得EL在JSP页面的任何地方都可直接应用,增强了代码的可读性和可维护性。 总的来说,JSTL和EL为JSP开发带来了标准化和效率...

    JSP的JSTL标签和EL表达式大全

    **JSP的JSTL标签和EL表达式详解** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码来生成动态内容。然而,传统的JSP脚本语法可能导致代码混乱且不易维护。为了解决这个问题...

    el表达式EL表达式言语和JSTL

    综上所述,EL表达式和JSTL是构建高效、可维护的Java Web应用的重要工具。它们结合使用,可以显著提升开发效率,同时降低复杂度,使得JSP页面更专注于呈现逻辑。通过深入理解和熟练掌握这两者,开发者可以更好地实现...

    JSTL与EL表达式

    JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,E L(Expression Language) 目的:为了使JSP写起来更加简单。

    在jsp中使用JSTL跟El表达式访问和遍历Map集合

    本篇将详细介绍如何在JSP中利用JSTL与EL表达式来访问和遍历Map集合。 首先,JSTL是一个标准的标签库,它提供了一系列预定义的标签,用于处理常见的任务,如迭代、条件判断、XML处理等,避免了在JSP页面中直接写Java...

    JSTL1.1及EL表达式中文参考手册

    **JSTL1.1及EL表达式**是Java服务器页面(JSP)开发中的重要组件,它们极大地提升了JSP的可读性和可维护性。本文将深入探讨这两个概念及其在实际开发中的应用。 **JSTL(JavaServer Pages Standard Tag Library)**...

    EL表达式言语和JSTL

    **EL表达式语言和JSTL** EL(Expression Language)表达式语言是JavaServer Pages(JSP)技术的一部分,主要用于简化在JSP页面中获取、操作和显示数据。EL表达式语言提供了一种简洁的方式来访问JavaBeans属性、JSP...

    JavaWeb分页展示数据(含AJAX/JSTL/EL表达式等知识点)

    通过以上步骤,你可以理解并掌握JavaWeb中分页数据的展示,以及AJAX、JSTL、EL表达式和JSP标准动作的实际应用。这是一个很好的实践项目,能够帮助你巩固这些技术,同时提升Web应用的开发能力。在实际开发中,你还...

Global site tag (gtag.js) - Google Analytics