`

JSTL入门:表达式(常用)

阅读更多
EL 表达式的格式是这样的:用美元符号({ })中<c:out value="${ user.firstName}"/>
组合静态文本和多个 EL 表达式以指定动态属性值

  <c:out value="Hello ${ user.firstName} ${ user.lastName}"/>
存取器       EL 提供了两种不同的存取器(点运算符(.)和方括号运算符([])),也支持通过           EL 操作特性和元素
点运算符通常用于访问对象的特性:例如,在表达式 ${ user.firstName} 中,使用点运算符来访问 user 标识符所引用对象的名为 firstName 的特性。EL 使用 Java bean 约定访问对象特性,因此必须定义这个特性的 getter 方法(通常是名为 getFirstName() 的方法),以便表达式正确求值。当被访问的特性本身是对象时,可以递归地应用点运算符。例如,具有city属性的address对象是user对象的属性,,表达式 ${ user.address.city} 将会返回这个地址对象嵌套的 city 特性。
方括号运算符用来检索数组和集合的元素。在数组和有序集合(也即,实现了 java.util.List 接口的集合)的情况下,把要检索的元素的下标放在方括号中。例如,表达式 ${ urls[3]} 返回 urls 标识符所引用的数组或集合的第四个元素(和 Java 语言以及 JavaScript 中一样,EL 中的下标是从零开始的)。
对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${ commands["dir"]} 返回与 commands 标识符所引用的 Map 中的 "dir" 键相关联的值。
点运算符和方括号运算符还可以互操作。例如,如果数组的元素本身是对象,则可以使用方括号运算符来检索该数组的元素,并结合点运算符来检索该元素的一个特性(例如 ${ urls[3].protocol})。
点运算符和方括号运算符可能实现某种程度的互换。例如,也可以使用 ${ user["firstName"]} 来检索 user 对象的 firstName 特性,正如可以用 ${ commands.dir} 获取与 commands 映射中的 "dir" 键相关联的值一样。
运算符     

算术运算符  +、-、*、/(或 div)和 %(或 mod)
关系运算符  ==(或 eq)、!=(或 ne)、<</code>(或 lt)、>(或 gt)、<=(或le)和 >=(或 ge)
逻辑运算符  &&(或 and)、||(或 or)和 !(或 not)
验证运算符  empty
利用算术运算符的 EL 表达式
${item.price * (1 + taxRate[user.address.zipcode])}


 利用关系和逻辑运算符的 EL 表达式:关系运算符允许比较数字或文本数据。比较的结果作为布尔值返回
${(x >= min) && (x <= max)}


运算符 empty:验证数据,empty 运算符采用单个表达式作为其变量(也即,${ empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。
EL 运算符优先级(自顶到底,从左到右)
[], .
()
unary -、not、!、empty
*、/、div、%、mod
+、binary -
() <</code>、>、<=、>=、lt、gt、le、ge
==、!=、eq、ne
&&、and
||、or


文字值:   在 EL 表达式中,数字、字符串、布尔值和 null 都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为 true 和 false。
Taglib(伪指令):用于 JSTL core 库 EL 版本的 taglib 伪指令
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>


对应于 JSTL core 库的 taglib 伪指令有两种:
用于 JSTL core 库 RT 版本的 taglib 伪指令
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt" %>


变量标记:
JSTL 定制标记是 <c:set> 操作:<c:set> 操作提供基于标记的机制来创建和设置限制了作用域的变量,其中 var 属性指定了限制了作用域的变量的名称,scope 属性表明了该变量驻留在哪个作用域中,value 属性指定了分配给该变量的值。如果指定变量已经存在,则简单地将所指明的值赋给它。如果不存在,则创建新的限制了作用域的变量,并用该值初始化这个变量。scope 属性是可选的,其缺省值是 page,<c:set> 操作的语法

<c:set var="name" scope="scope" value="expression"/>



<c:set> 操作示例
<c:set var="timezone" scope="session" value="CST"/>
<c:set var="square" value="${param['x'] * param['x']}"/>



通过主体内容指定 <c:set> 操作的值

<c:set var="timezone" scope="session">CST</c:set>



<c:remove> 操作是用来删除限制了作用域的变量的,它获取两个属性。var 属性指定待删除变量的名称,scope 属性是可选的,它表示待删除变量来自哪个作用域,缺省为 page.<c:remove var="timezone" scope="session"/>

输出:<c:out>该标记对由其 value 属性指定的表达式进行求值,然后打印结果。如果指定了可选属性 default,那么,在对 value 属性的表达式求值所得结果为 null 或空 String 的情况下,<c:out> 将打印其值.

<c:out> 操作的语法

<c:out value="expression" default="expression" escapeXml="boolean"/>



escapeXml 属性也是可选的。它控制当用 <c:out> 标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 &lt;、&gt; 和 &amp;)。
带缺省内容的 <c:out> 操作示例 Hello
<c:out value="${user.username}" default=="Guest"/>



禁用转义的 <c:out> 操作示例
<c:out value="${user.company}" escapeXml=="false"/>

合并 <c:set> 和 <c:out> 以提供缺省变量值
<c:set var="timezone" scope=="session">
   <c:out value="${cookie['tzPref'].value}" default=="CST"/>
</c:set>

分享到:
评论

相关推荐

    JSTL标签入门帮助文档

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP页面提供了一套强大的、可..."JSTL入门帮助文档"会详细讲解这些概念和用法,对初学者来说是一份非常有价值的参考资料。

    jstl 使用文档方便你快速入门 ,能够快速上手使用JSTL技术.pdf

    ### 三、JSTL核心库的常用标签 1. **&lt;c:if&gt;**:条件判断标签,用于执行基于表达式的条件检查。如: ```jsp &lt;c:if test="${expression}"&gt; &lt;!-- 当expression为true时,执行这里的代码 --&gt; &lt;/c:if&gt; ``` 2. **&lt;c...

    jstl标签库文档

    相比之下,JSTL标签库通过将常用功能封装成标签的形式,不仅避免了上述问题,还让页面逻辑更加清晰,易于理解和维护。例如,使用JSTL的&lt;c:if&gt;标签可以轻松实现条件渲染,而无需编写冗长且易出错的Java脚本。这种将...

    JSTL入门,第4部分:访问SQL和XML内容

    ### JSTL入门第四部分:访问SQL和XML内容 #### 一、引言 随着互联网技术的发展,Web应用程序越来越依赖于多个子系统的集成。在这个过程中,数据交换成为了至关重要的环节。其中,SQL 和 XML 是两种最常用的数据交换...

    JSP入门教程之客户端验证、常用输出方式及JSTL基本用法

    通过本教程提供的客户端验证、常用输出方式以及JSTL基本用法的知识点,可以有效地入门并掌握JSP页面的基本开发技术。学习这些内容不仅可以帮助开发者编写功能完整的动态网站,还可以在工作中提高开发效率,确保开发...

    Java Web开发实战经典-基础篇课后习题答案及高级篇源码

    MLDN 李兴华 老师 Java Web基础篇课后习题答案,Java Web高级案例篇全部源码。 此源码从最基本的JSP页面到Model 1到Model 2,文件上传,EL,JSTL,Ajax,Structs,一点一点的修改讲解...第十六章.Structs常用标签:1题

    jstl标签基础+例子

    JSTL 包含多个核心标签库,其中最常用的是 Core 标签库,此外还包括 SQL 标签库、格式化标签库等。下面将详细介绍这些标签库的基本用法。 #### Core 标签库 - **定义**:Core 标签库包含了用于控制流程、变量管理、...

    jstl文档资料和测试例子

    **JSTL文档**,如`JSTL 入门.chm`,通常会包含以下内容: 1. **介绍**:解释JSTL的基本概念,以及为何在Web开发中使用它。 2. **核心标签库**:详述`&lt;c&gt;`库,包括`&lt;c:if&gt;`, `&lt;c:choose&gt;`, `&lt;c:forLoop&gt;`, `&lt;c:...

    JAVAWeb全课程笔记( html版)

    JSTL标签库: JSP标准标签库 MVC程序架构思想&案例 [总结]Path路径问题 [总结]JavaWeb乱码问题 [转自IBM]中文编码问题 JDBC入门 Jdbc事务控制管理 常用数据库连接池 编写JDBC框架 客户信息管理系统 Servlet Filter ...

    Java Web程序设计入门课件-JSTL中的Core标签库.pptx

    在"Java Web程序设计入门课件-JSTL中的Core标签库.pptx"中,主要介绍了JSTL的核心标签库,以下是对这些常用标签的详细解析: 1. `&lt;c:out&gt;`标签:这是用来输出变量或表达式值的标签,可以防止XSS(跨站脚本攻击)...

    JAVA零基础入门和从网页搭建入门Java Web

    7. **JSTL和EL表达式**:使用JSP Standard Tag Library(JSTL)简化JSP页面,以及Expression Language(EL)表达式的运用。 在提供的压缩文件"ca023ab46028473289739e40de479cca"中,可能包含了上述所有阶段的视频...

    Java全栈学习路线及知识清单

    * JSTL & EL表达式:了解JSTL和EL表达式的基本概念和应用 * MVC三层架构:了解MVC三层架构的基本概念和应用 * 过滤器:了解过滤器的基本概念和应用 * 监听器:了解监听器的基本概念和应用 * 文件上传与下载:了解...

    Javaweb入门级别demo

    JavaWeb入门级别的DEMO主要涉及的是Java开发中的Web应用程序构建,使用了SSM(Spring、SpringMVC、MyBatis)三大主流框架。这个DEMO旨在为初学者提供一个简单的学习平台,帮助他们快速理解并掌握JavaWeb开发的基础...

    JSP中文入门基础教程(包括常用标签)

    **JSP中文入门基础教程** JavaServer Pages(JSP)是一种动态网页开发技术,由Sun Microsystems(现已被Oracle收购)推出。它允许开发者在HTML、XML或其他标记语言中嵌入Java代码,从而实现服务器端的动态网页生成...

    JSP入门实例源码

    6. **JSTL(JavaServer Pages Standard Tag Library)**:标准标签库,提供了各种常用的JSP标签,如条件语句、迭代、XML处理等,使代码更易读、更简洁。 **源码分析**: 在"chap01"目录下,你可能会找到一系列的JSP...

    JSP快速入门教程

    - **EL (Expression Language)**:表达式语言,常与JSTL配合使用,用于数据绑定和输出。 - **Servlet**:作为Web应用的控制器,负责处理HTTP请求和响应,与JSP协同工作。 - **JDBC**:用于与数据库交互,执行SQL...

    javaweb快速入门

    - **JSTL (JavaServer Pages Standard Tag Library)**: 提供了一套标准的标签库,简化了JSP页面的开发。 - **EL (Expression Language)**: 表达式语言,用于获取JavaBean属性的值或者执行简单的运算。 - **...

    Servlet与JSP入门一

    - 常用的JSTL核心标签有:`&lt;c:forEach&gt;`(循环)、`&lt;c:if&gt;`(条件判断)、`&lt;c:choose&gt;`(多分支选择)等。 8. **实际应用**: - 在实际开发中,通常使用Servlet处理请求,JSP处理视图展示,两者配合实现MVC设计...

    jsp入门实例,连接几种常用数据库

    本资源集“jsp入门实例”聚焦于教授初学者如何利用JSP技术与多种常见数据库进行连接,为你的Web开发之旅提供坚实的基础。 首先,JSP的核心概念在于它将HTML标记与Java代码结合起来,使得开发者可以在同一个文件中...

Global site tag (gtag.js) - Google Analytics