使用JSTL前的准备

想要使用JSTL,首先需要给工程导入JSTL的包(JSTL.jar和standard.jar).

JSTL标签库

在JSTL中分为以下五个标签

  1. 核心标签
  2. 格式化标签
  3. SQL标签
  4. XML标签
  5. 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的使用的更多相关文章

  1. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  2. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  3. JavaWeb_day08_EL JSTL

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day08 EL JSTL EL表达式 语法:${} ...

  4. java web学习总结(三十) -------------------JSTL表达式

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  5. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  6. JSTL 操作符

    el表达式的取值默认顺序:     pageScope  requestScope  sessionScope  applicationScope     结构,采用.导航,也称为存取器   ${us ...

  7. JSP页面JSTL提供的函数标签EL表达式操作字符串的方法

    首先在jsp页面导入标签<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&quo ...

  8. JSTL标签库

    JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...

  9. 重温JSP学习笔记--与日期数字格式化有关的jstl标签库

    上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...

  10. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

随机推荐

  1. Dotnetty 的心跳

    只要你不按照实例中使用libuv,就不会有问题了. 主要区别在于 WorkerEventLoopGroup 和 MultithreadEventLoopGroup 之间.

  2. debian-pve-ceph

    从头开始安装debian9.8 debian-9.8.0-amd64-netinst.iso vi /etc/vim/vimrc.tinyset nocompatibleset backspace=2 ...

  3. layer.open弹出窗口后在子页面修改弹窗的title

    在子页面修改layer.open弹窗的title,代码如下: var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索 ...

  4. nis+kerberos 实现服务验证

    1.NIS部分 1.1 简介     NIS(Network Information Service,or Yellow Page or YP) 网络信息服务,由sun公司开发并授权给unix供应商, ...

  5. EF提示“序列化类型为XXX的对象时检测到循环引用”

    能看到这个标题 ,我就用解释原因,网上很多,我只给大家一个解决方案会: public <#=code.Escape(entity)#> ToPOCO() { return new < ...

  6. 同一台电脑配置多个JBoss

    在jboss中找到对应的文件,修改对应文件端口可解决两个以上jboss的端口冲突问题 不同的jboss修改的端口要区别开来,本例所用jboss版本为JBoss4.2.2.GA 文件端口: 8083,1 ...

  7. python中类似三元表达式的写法

    python中没有其它语言中的三元表达式,如: a = x > y ? m : n; python中的类似写法为: a = 1 b = 2 h = "" h = " ...

  8. maven项目pom.xml添加main启动类

    pom.xml配置添加main启动类: <build> <finalName>MyApp</finalName> <!-- 最终package打包的jar名称 ...

  9. mac下 chmod 不了文件,可以右键查看文件简介处修改权限

  10. js 合并多行表格

    最近在整理之前的工作记录,有很多信息是借鉴他人,亲测有效的,遗憾的是当初记录时没有留下来源,如侵权请联系fourOfour@163.com. 1.autoRowSpan函数的第一个参数是table的i ...