jsp/servlet学习五之jsp表达式语言初窥
EL表达式是jsp中最常用的表达式之一。EL表达式以${开头,并以}结束,例如${1+1}。el表达式可以返回任意类型的值,如果el表达式的结果是一个带属性的对象,则可以利用[]或者.运算来访问该属性,如:
${object.["propertyName"]}或者是${object.propertyName}
EL表达式中有一些常用的运算符(+ - * %等),和逻辑运算符(&& ||等 )规则等同于java。
JSTL即JSP标准标签库是一个定制标签库的集合,用来解决像遍历Map或集合,条件测试,xml处理,甚至数据库访问和数据操作等常见的问题。
使用jstl标签库必须进入jstl相关的jar文件,并且jsp页面需要有使用的相关声明<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>。(ps:本博客jstl标签库版本为1.2)
JSTL1.2中的标签可以分成5类区域。
| 区域 | 子函数 | URL | 前缀 |
| 核心 | 变量支持 | http://java.sun.com/jsp/jstl/core | c |
| 流控制 | |||
| URL管理 | |||
| 其他 | |||
| xml | 核心 | http://java.sun.com/jsp/jstl/xml | x |
| 流控制 | |||
| 转换 | |||
| 国际化 | 语言区域 | http://java.sun.com/jsp/jstl/fmt | fmt |
| 消息格式化 | |||
| 数字和日期格式化 | |||
| 数据库 | SQL | http://java.sun.com/jsp/jstl/sql | sql |
| 函数 | 集合长度 | http://java.sun.com/jsp/jstl/functions | fn |
| 字符串操作 |
Core库
out标签在运算表达式时,是将结果输出到当前的JspWriter。<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] /> 或者是
<c:out value="value" [escapeXml="{true|false}"] >default value </c:out>
set用于创建一个有界变量
<c:set target="${adress}" property="city">beijing</c:set>将字符串“beijing”赋予有界对象address的city属性。
remove标签用于删除有界变量,如:<c:remove var="job" scope="page" />删除了页面范围的变量job。
if标签是对某一条件进行判断测试,
<c:if test="testCondition">xxxxx</c:if>其中testCondition为boolean类型。语法类似于java中的if(xx){xx}
choose,when,otherwise标签 choose和when标签与java中的switch case标签类似
<c:choose>
<c:when test="${1==1}">xxxx</c:when>
<c:when test="${1==2}">xxxx</c:when>
<c:otherwise>xxxx</c:otherwise>
</c:choose>
forEach标签会遍历指定的对象集合。
<c:forEach var="x" begin="1" end="5">
<c:out value="${x}" />
</c:forEach>
<c:forEach var="phone" items="${address.phone}" varStatus="status">
${phone}
</c:forEach>
status表示当前遍历的次数。
(ps:forEach标签可以相互嵌套使用,需要根据实际场景灵活使用。)
格式化行为
JSTL提供了格式化和解析数字与日期的标签,它们是formatNumber,formatDate,timeZone,setTimeZone,parseNumber,parseDate
formatNumber用于格式化数字,
formatDate用于格式日期
函数
contains函数,用于测试一个字符串是否包含制定的字符串,<c:if test="${fn:contians("aaaaa","aa")}"></c:if>,
endsWith函数,用于测试是否以某个字符串结尾,
indexOf返回指定字符串第一次出现的索引,
join将指定字符串以指定的符号连接,
length返回字符串长度,
replace替换字符串,
split切割字符串,
substring截取字符串,
......
(ps:更多的函数或标签使用请查看相关的jstl的使用api)
jsp/servlet学习五之jsp表达式语言初窥的更多相关文章
- jsp/servlet学习四之jsp初窥
jsp页面本质上是一个servlet,jsp页面是一个以.jsp结尾的文本文件. jsp自带的API包含4个包: javax.servlet.jsp.包含用于servlet/jsp容器将jsp页面翻译 ...
- JSP&Servlet学习手册
JSP&Servlet学习手册 沙琪玛 书 目录 JSP 指令... 3 书写方式... 3 指令列表... 3 JSP 内置对象... 3 内置对象特点... 3 常用内置对象... 3 o ...
- jsp&servlet学习笔记
1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...
- JSP&Servlet学习笔记----第1/2章
HTML(HyperText Markup Language):超文本标记语言 HTTP(HyperText Transfer Protocol):超文本传输协议 URL(Uniform Resour ...
- JSP&Servlet学习笔记----第3章
Web容器是JSP/Servlet唯一认识的HTTP服务器. HTTP是基于请求/响应的无状态通信协议. 流程: 1.请求来到HTTP服务器 2.HTTP服务器将请求转交给Web容器 3.Web容器创 ...
- jsp/servlet学习一之servlet初窥
Java Servlet技术简称Servlet技术,是java开发web应用的底层技术.Servlet是一个java程序,一个servlet应用有一个或多个Servlet程序.jsp页面会被转换和编译 ...
- 【JSP&Servlet学习笔记】5.Servlet进阶AIP、过滤器与监听器
Servlet接口上,与生命周期及请求服务相关的三个方法是init().service()与destory()方法.当Web容器加载Servlet类并实例化之后,会生成ServletConfig对象并 ...
- JSP Servlet学习笔记——使用fileupload上传文件
关键代码如下: index.jsp <body> <center> <h3>文件上传</h3> <font color="red&quo ...
- JSP&Servlet学习笔记----第6章
JSP与Servlet是一体两面的关系. JSP最终还是被编译为Servlet. <%@page contentType="text/html;charset=UTF-8" ...
随机推荐
- 22.1 、react生命周期(一)
在每个react组件中都有以下几个生命周期方法~我们需要在不同阶段进行讨论 组件生命周期概述 1.初始化 在组件初始化阶段会执行 constructor static getDerivedStateF ...
- 浅谈Observer在代码中表现形式
说到观察者模式,基本在软件工程领域中是应用广泛,不知道的可以先学习一番,下面给个快速的回顾,然后在通过一个grpc中的responseObserver谈下观察者对象在代码中的位置. 喜欢类图,就不上其 ...
- 我了解到的新知识之---Cylance Protect是干吗的?
每家企业都会采购适合自己的杀毒软件来保护企业内的电脑处在安全的状态下,我所在的公司目前在用的是来自美国的初创企业的产品Cylance Protect.,目前这家公司已经在2018年11月份被黑莓公司收 ...
- Mycat原理、应用场景
Mycat原理 Mycat的原理并不复杂,复杂的是代码,如果代码也不复杂,那么早就成为一个传说了.Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一 ...
- 模拟器中安装APK报Error:INSTALL_FAILED_NO_MATCHING_ABIS
1.启动AVD Manager.exe 2.将APP的安装包.apk直接拖到模拟器中,报错 3.原来是代码里由于大小限制只开放了armeabi-v7a这个ABI,但创建的模拟机支持的CPU是其他类型的 ...
- 【托业】toeic托业必背核心词汇_修正版
- docker+kafka+zookeeper+zipkin的安装
1. 启动zookeeper容器 docker search zookeeper docker pull wurstmeister/zookeeper docker run -d --name zoo ...
- spring cloud 定时任务
项目中,因为使用了第三方支付(支付宝和微信支付),支付完毕后,第三方支付平台一般会采用异步回调通知的方式,通知商户支付结果,然后商户根据通知内容,变更商户项目支付订单的状态.一般来说,为了防止商户项目 ...
- Redis配置文件redis.conf详解
一.Redis配置文件redis.conf详解 # Note on units: when memory size is needed, it is possible to specifiy # it ...
- 从零开始一起学习SLAM | 给点云加个滤网
对VSLAM和三维重建感兴趣的在计算机视觉life"公众号菜单栏回复"三维视觉"进交流群. 小白:师兄,上次你讲了点云拼接后,我回去费了不少时间研究,终于得到了和你给的参 ...