JSTL的使用
使用JSTL前的准备
想要使用JSTL,首先需要给工程导入JSTL的包(JSTL.jar和standard.jar).
JSTL标签库
在JSTL中分为以下五个标签
- 核心标签
- 格式化标签
- SQL标签
- XML标签
- JSTL函数
使用不同的标签的时候需要在JSP中引入不同的库
核心标签(Core):
引入标签库
1
|
<% @taglib prefix= "c" uri= "http://java.sun.com/jsp/jstl/core" %> |
<c:set>
<c:set> 等同于JSP中的 session的setAttribute() 方法
使用方法:
1.<c:set var=”名字” value=”值”/>
2.<c:set var=”名字”>值</c:set>
<c:out>
<c:out> 等同于 JSP中的 <%= %>
使用方法:
<c:out value=”需要输出的值”>
在这里可以用EL表达式来进行输出session中的Attrbute
例:
<c:set var=”test” value=”这是一个测试”> <c:out value=”${test}”>
输出结果: 这是一个测试
<c:remove>
<c:remove> 和c:set标签正好相反,c:set标签是设置setAttrbute 这个标签则是 删除 Attrbute中设置的值 等同于 session中的removeAttrbute()方法
使用方法:
<c:remove var=”名字”/>
<c:if>
<c:if> 等同于 java 中的 if 语句
使用方法:
<c:if test=”条件”>满足条件执行的JSP代码</c:if>
<c:catch>
<c:catch> 类似于 java 中的 try
使用方法:
<c:catch var=”名字”>JSP代码</c:catch>
如果在执行过程中,JSP代码发生了错误,那么将会复制给名字,因此我们可以通过判断名字是否为NULL 来进行判断是否有异常发生
例:
<c:catch var=”testException”> <% int i = 5/0; %> </c:catch> <c:if test=”${testException != null}”>
上面的代码有错误发生
</c:if>
输出结果: 上面的代码有错误发生
如果将 上面的 0 改为 3 则没有任何输出结果
<c:choose> 和 <c:when>
<c:choose> 和 <c:when> 类似于 java 中的 switch 和 case
使用方法:(c:choose中可以有多个c:when标签)
<c:choose> <c:when test=”条件”>处理</c:when> <c:when test=”条件”>处理</c:when> </c:choose>
例:
<c:set var=”test” value=”10”/> <c:choose> <c:when test=”${test > 5}”>test 大于5</c:when> <c:when test=”${test < 5}”>test小于5</c:when> </c:choose>
输出结果: test大于5
<c:otherwise>
<c:otherwise> 等同于 java switch 中的 default
使用方法
<c:choose> <c:otherwise>处理</c:otherwise> </c:choose>
当choose 中的 when 没有满足条件的时候 会执行 otherwise 中的内容
注意: choose 和 when 和 otherwise 是一组 when 和 otherwise 必须写在choose中
<c:import>
使用方法:
<c:import var=”date” url=”http://www.baidu.com” />
通过上面的写法会将 百度 的源代码返回到 date 变量中,使用
<c:out value=”${date}”>
输出
<c:forEach> 和 <c:forTokens>
类似于JAVA中的 FOR循环 和 FOREACH循环
使用方法:
<c:forEach var=”名字(i)” begin=”开始数字(1)” end=”结束数字(5)”> ${i} </c:forEach>
输出结果是1 2 3 4 5
使用方法:
<c:forTokens items=”a,b,c,d,e” delims=”,” var=”name”> ${name} </c:forTokens>
输出结果 a b c d e
forEach类似于JAVA中 for 循环 设置一个开始数字 begin 设置一个结束数字 end 然后每次循环都会将值赋值给 var 另外还有个 setp参数 里面可以设置值 意思是每次增加几个数
forTokens类似于JAVA中的foreach 在items中放一个组 然后 delims设置以什么分割 然后 将分割后循环的值赋值给 var 如果 items中存放的是一个集合 那么可以不用写delims 这样每循环一次 就会取出集合中的一个放在 var中
<c:redirect>
类似于service中的重定向
使用方法:
<c:redirect url=”http://www.baidu.com”/>
重定向到百度去
另外还有<c:url> 和 <c:param>两个标签
文章来自https://www.cnblogs.com/adversary/p/5976972.html
JSTL的使用的更多相关文章
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- JSTL标签 参考手册
前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...
- JavaWeb_day08_EL JSTL
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day08 EL JSTL EL表达式 语法:${} ...
- java web学习总结(三十) -------------------JSTL表达式
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...
- [Java] JSP笔记 - EL、JSTL 常用标签
一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...
- JSTL 操作符
el表达式的取值默认顺序: pageScope requestScope sessionScope applicationScope 结构,采用.导航,也称为存取器 ${us ...
- JSP页面JSTL提供的函数标签EL表达式操作字符串的方法
首先在jsp页面导入标签<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&quo ...
- JSTL标签库
JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...
- 重温JSP学习笔记--与日期数字格式化有关的jstl标签库
上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
随机推荐
- Sqoop简介
一 Sqoop是什么 Sqoop:SQL-to-Hadoop 连接传统关系型数据库和Hadoop的桥梁 把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS.HBase 和 Hive) ...
- nginx配置静态页面访问
server { server_name static.naice.me; // 你的域名或者 ip # 域名:static.naice.me 这里用 "_" 代表获取匹配所有 ...
- Elasticsearch(单节点)
1 Elasticsearch搭建 1.1 通过Wget下载ElasticSearch安装包wget https://artifacts.elastic.co/downloads/elasticsea ...
- Btrace 拦截时机
Kind.ENTRY 入口,默认值 Kind.RETURN: 返回 Kind.THROW: 异常 Kind.Line: 行 一.返回时拦截 package com.example.monitor_t ...
- [转]C#调用C++dll
本文转载至http://www.cnblogs.com/ysharp/archive/2012/05/25/2517803.html 在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问 ...
- win2008安装并配置zabbix3.4 agent
agent 下载地址: https://www.zabbix.com/download_agents 下载解压后有2个文件夹,一个是bin,存放32位和64位执行程序,一个是conf目录存放着配置文件 ...
- Celery结合Django使用
一.Celery介绍 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个 ...
- JIRA的邮件通知
提交测试或提交上线申请时发送给相关的开发人员.测试人员.运维人员. 使用插件Notification
- 学习笔记之English
雅思听力地图题的常用短语 - 无忧机经预测 https://mp.weixin.qq.com/s/VmV3L2METymtjMWHY2fNiA 雅思听力租房的那些事儿 - 北京市海淀区环球雅思 htt ...
- js判断是否安装某个android app,没有安装下载该应用(websocket通信,监听窗口失去焦点事件)
现在经常有写场景需要提示用户下载app, 但是如果用户已经安装,我们希望是直接打开app. 实际上,js是没有判断app是否已经安装的方法的,我们只能曲线救国. 首先,我们需要有call起app的sc ...