EL表达式与JSTL

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

JSTL

安装

要使用jstl需要导入对应的库,可以去官方站点下载,

然后解压文件将得到的jar包放入到WEB-INF的lib中

导入之后,在要使用它的jsp文件中使用taglib 导入库

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

prefix 是标签的前缀,类似于命名空间,在使用库中的标签时需要加上这个前缀

常用标签

if 标签

if标签用来做判断,当条件成立时,执行标签体的内容,条件写在test属性中,注意:只有if标签而没有对应的else标签。下面是一个例子:

<c:if test="${not empty requestScope.error}">
    <div style="color:red;width:100%;" align = "center">${requestScope.error}</div>
</c:if>

上述这个例子表示,当服务器返回错误信息时,将错误信息显示到页面上

choose 标签

choose 标签相当于switch 语句,该标签中可以包含 when 和 otherwise 作为字标签,相当于switch语句中的case和default,例如下面的例子

<p>当前薪水为 : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 2000}">
       老板我是你爹, 这个工作谁爱干谁干
    </c:when>
    <c:when test="${salary > 50000}">
       公司是我家,工作就是我的价值,我热爱工作
    </c:when>
    <c:otherwise>
        心中无半点波澜,甚至想提前下班
    </c:otherwise>
</c:choose>

foreach 标签

foreach 用来迭代容器中的元素,或者完成一些重复的操作。

当使用foreach标签来进行重复性的操作时可以使用begin、end、var来控制循环,begin表示循环变量开始的值,end表示循环变量结束的值,与正常的for循环不同,循环变量的值可以等于end的值;使用var标签来定义循环变量的名称,使用step表示步进。例如:

<c:foreach begin = "1" end = "10" var = "i step = "1">
${i} <br />
</c:foreach>

等价于

for(int i = 1; i <= 10; i++){
    System.out.println(i);
}

当使用 foreach来迭代容器时使用item和 var来迭代,其中item为需要迭代的容器,var表示获取到的容器中的元素。例如

<c:foreach items = "list" var = "l">
    ${l}
</c:foreach>

等价于

for(String l:list){
    System.out.println(l);
}

EL

EL 表达式:Expression Language 表达式语言,用于替换和简化jsp页面中java代码的编写。EL 表达式使用 ${} 来表示

jsp 默认支持el表达式,在page指令中可以使用 isELIgnored 来指定是否忽略jsp页面中的el表达式;当然也可以使用 \ 来作为转义符,表示 这个el表达式原样输出,例如 \${cookie}

EL表达式中可以支持算数运算符、比较运算符、逻辑运算符合empty 空运算符;empty用于判断字符串、集合、数组对象是否为null或者长度为0。

在使用el表达式时需要注意以下几点:

  1. el表达式只能从域对象中获取值
  2. el表达式中如果是类对象,可以根据Java Bean规范来获取属性值
  3. 针对list这种有序集合可以使用 ${域对象.键名[索引].属性}
  4. 针对Map集合,使用 ${域对象.键名.key名}或者 ${域对象.键名["key名"]}
  5. el 表达式中对域对象都做了重命名,pageScope 对应于 pageContext、requestScope对应于request、sessionScope对应于session、applicationScope对应于applicate(ServletContext)
  6. 表达式${键名} 依次从最小的域中去查找对应的键值,直到找到为止

原文地址:https://www.cnblogs.com/lanuage/p/12001328.html

时间: 2024-12-25 12:52:25

EL表达式与JSTL的相关文章

Javaweb学习笔记6—EL表达式与JSTL及自定义标签

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.EL表达式 1,EL简介 Expression Lan

常用的EL表达式和JSTL

EL表达式: 打印接受来的参数:${ param.VarName } 验证接受来的参数是否为NULL: ${ empty param.VarName } EL内置的与存储范围有关几个对象类型为java.util.mappageScoperequestScopesessionScopeapplicationScope 与输入有关的隐含对象用来取得用户的请求参数: paramparamValues EL中内置的其它隐含对象: cookieheaderheaderValuesiniParampageC

Web开发中前台与后台技术小结--关于EL表达式,JSTL,eval()函数

在我们日常Web开发中,常常用到EL表达式,JSTL标签,还有可能用到JavaScript中的eval().下面就这样技术和函数小小说明一下. EL(Expression Language),全称表达式语言,既然是开发语言,那么就像Java等语言一样是用来写语句的,通常是用在JSP页面中,我们为了获取JSP提供的内置对象的属性值, 我们通常会使用到EL表达式,比如开发中常见的一个需求就是获取项目的根目录,如果项目的名值变化了,我们在指定路径时,如果把项目的根目录用一个变量来表示的话,那么就不 需

EL表达式、 jstl标签

EL表达式(Expression Language) 目的:为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化. 1.语法结构 ${expression} 2.[ ]与.运算符 EL 提供"."和"[ ]"两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用"[ ]".例如

Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量) <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量 2.jsp的运行原理 jsp在运行时翻译成servlet index.jsp------>work/index_jsp.java----->work/inde

EL表达式与JSTL(C)标签

一.EL表达式: Expression Language提供了在 JSP 脚本编制元素范围外(例如:脚本标签)使用运行时表达式的功能.脚本编制元素是指页面中能够用于在JSP 文件中嵌入 Java 代码的元素.它们通常用于对象操作以及执行那些影响所生成内容的计算 1)语法结构 ${expression} 2)[]与.运算符 EL 提供.和[]两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []. 例如:${user.My-Name}应当改

EL表达式和JSTL笔记

JSTL标签参考手册 :http://elf8848.iteye.com/blog/245559 JSTL教程:http://www.yiibai.com/jstl EL表达式: http://baike.baidu.com/link?url=bOjEpvEDkmCPF04XqlKC_LCxes_M0x8FiX_g5fyKWJskiPC_3rYD8n5kJCBGv2Hko7fXyczCcopTWy-nZb8UMq

JavaWeb基础—EL表达式与JSTL标签库

EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一个小案例: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="com.jiangbei.domain

Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

<转载> 我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用   Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码复用.Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求.Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供

EL表达式和JSTL

EL相关概念JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程语言,甚至不是脚本编制语言.通常与 JSTL 标记一起作用,能用简单而又方便的符号来表示复杂的行为. EL基本格式EL表达式的格式:用美元符号($)定界,内容包括在花括号({})中;例如: ${loginInfoBean.suser} 此外,您可以将多个表达式与静态文本组合在一起以通过字符串并置来构造动态属性值;例如