JSP 本身提供的标签很少,不能满足我们日常开发需要,好在 Sun 公司自己提供了一套标签库;


JSTL标签库快速入门(可点击)


目录


< c : out > 标签

用于输出一段文本内容到 pageContext 对象当前保存的 out 对象中 ;跟 out.write() 一样,都是将内容保存到 out 对象里面,最后输送给浏览器 ;

属性名 是否支持 EL表达式 属性类型 属性描述
Value true oject 指定要输出的内容
escapeXml true Booleean 指定是否对 ><$' 等特殊字符进行 HTML 编码转换后再进行输出。默认是 true
default true Object 指定如果 value 的值为 null 的时候,输出的默认值

实例:

  <c:out value="阿里嘎都"></c:out>

< c : set > 标签

用于把某一个对象存在指定的域范围内,或者 设置 web 域中的 java.util.Map 类型的属性对象或 Javabean 类型的属性对象的属性

属性名 是否支持 EL表达式 属性类型 属性描述
value true oject 用于为属性赋值
var false String 用于指定要设置的 web域 中属性的名称
scope false String 用于指定属性所在的 web 域,默认是 page域
target true Object 用于指定要设置属性的对象,这个对象必须是 Javabean 对象或者是 java.util.Map 对象
property true String 用于当前要为对象设置的属性名称

其中 value 是公用的 ;

varscope 是一起用的,用于在 web域 中存储属性;

targetproperty 是一起用的,用于设置 java.util.MapJavabean 对象的属性值 ;

实例

    <%--在 request域中 存储一个叫 aha 的属性,属性值为 狗蛋--%>
<c:set var="aha" scope="request" value="狗蛋"></c:set>
<%--取出这个值--%>
${aha}
----------------------------------------------------------
备注: 如果“value”为 null,“var”指定的属性将被删除! 如果“var”指定的属性不存在,则会创建一个属性,但此时 value 属性的值不能为 null。
---------------------------------------------------------- <%--先在page域中创建一个Javabean对象,--%>
<jsp:useBean id="goudan" class="cn.yaz.web.Bean.Person"></jsp:useBean>
<%--为Javabean对象设置属性,不再需要之前使用jsp标签了--%>
<c:set target="${goudan}" property="name" value="goudan"></c:set>
<%--取值--%>
${goudan.name}
-----------------------------------------------
备注: 如果 target 是一个Map对象,property 指定的是该Map的一个 键; 如果 target 是一个Javabean对象, property 指定的是该Javabean的一个成员字段。 如果 target 为null,容器会抛出一个异常。 如果 target 表达式不是一个 Map 或 Javabean,容器会抛出一个异常,因为它只能被 Map、Javabean 使用。 如果 target 表达式是一个 Javabean,但是这个 Javabean 没有与 property 匹配的成员字段,容器会抛出一个异常。
-----------------------------------------------

< c : remove > 标签

用于删除 web域 中的保存的属性

属性名 是否支持 EL表达式 属性类型 属性描述
var false String 指定要删除的属性
scope false String 用于指定要删除的属性所在的 web域

实例:

 <c:remove var="goudan" scope="page"></c:remove>

< c : catch > 标签

用于捕获嵌套在 标签体中的内容 抛出 异常;

属性名 是否支持 EL表达式 属性类型 属性描述
var false String 用于标识捕获的异常对象

实例:

     <%--捕获异常--%>
<c:catch var="yichan">
<%=
10 / 0
%>
</c:catch> <%--打印异常--%>
<c:if test="${yichan != null}">
发生异常:${yichan.message}
</c:if>

< c : choose> 标签

用于指定多个条件选择的组合边界,它必须与 <c:when><c:otherwise> 一起使用。

三个标签一起使用,可以构造出类似于 id-else-if 的效果 ;

实例:

       <c:choose>
<c:when test="${1==1}">
你可以看到这条信息
</c:when>
<c:otherwise>
这条信息是看不到的
</c:otherwise>
</c:choose>

< c : forEach> 标签

用于对一个对象中的元素进行迭代操作;

或者按照指定的次数重复迭代执行标签体的内容;

属性名 是否支持 EL表达式 属性类型 属性描述
var false String 用于指定将当前迭代到的元素保存在 page域 中的名称
varstatus false String 用于记录迭代信息的对象
items true 任何支持的类型 将要迭代的集合对象
brgin true int 如果指定了items属性,就从集合中的第 begin 个元素开始迭代,begin 的索引值从 0 开始编号;

如果没有指定 items 属性,就从 begin 指定的值开始迭代,直到 end 值时结束迭代
end true int 迭代结束的标记
start true int 指定迭代的步长,即迭代因子的增量

这里面的 beginendstep 主要是用在分页上;也可以直接迭代;

varstatus,用于记录迭代信息的对象,可以简单理解为记录当前迭代的次数,该对象有个 count 属性,保存了迭代的次数 ;


< c : param> 标签

在 JSP 页面中进行 URL 的相关操作时,经常需要在 URL 地址后面附加一些参数。

该标签嵌套在 <c:import><c:url><c:redict> 标签内,为这些标签所使用的url地址附加参数 ;

在对 URL 地址附加参数的时候,会自动地对参数值进行 URL 编码;这是使用这个标签最大的好处了 ;

属性名 是否支持 EL表达式 属性类型 属性描述
name false String 用于指定附加参数的名字
value true String 用于指定附加参数的属性值

该标签需要嵌套使用,暂时并不能给出实例,等学完后面的两个,就可以给出实例了 ;


< c : url > 标签

用于在JSP页面中构建一个 URL 地址,其主要目的是实现 URL 重写

URL 重写 就是将绘会话标识号以参数形式附加在 URL地址 后面 ;

属性名 是否支持 EL表达式 属性类型 属性描述
var false String 用于指定构造出来的url的名称,主要用于保存到 web 域中
value true String 用于指定要构造的 url
scope false String 用于指定要构造的 url地址保存到哪一个域中

实例:

        <%--构建出url地址--%>
<c:url value="index.jsp">
<%--添加附加参数--%>
<c:param name="name" value="yaz"></c:param>
<c:param name="国家" value="China"></c:param>
</c:url>

构建地址的时候,会自动在地址前面加上当前项目的名字;

如果不写 var 属性,则将返回当前构建的地址;,但是返回的仅仅是一个字符串,不是超链接地址

如果写上 var 属性,则将当前构建的地址保存起来

该标签最大的好处是自动进行 URL 重写


< c : redirect > 标签

用于实现请求重定向

属性名 是否支持 EL表达式 属性类型 属性描述
url true String 指定要转发到或者重定向到的目标资源的url
context true String 当要使用相对路径重定向到同一台服务器下的另一个web应用程序中资源时,context 指定其他web资源的名字

< c : forTokens > 标签

用于切割字符串 ;

实例:


<!-- 按照 - 切割字符串,并返回它们 -->
<c:forTokens items="aa" var="${date}" delims="-" >
${aa}
</c:forTokens>

(十二)Sun公司的Jstl标签库详细介绍的更多相关文章

  1. sun公司的jstl标签库

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  2. JSTL标签库---SUN公司开发的标签库

    JSTL里的标签包含五大类标签: 核心标签库 国际化标签 JSTL函数(EL函数) 数据库标签// 操作数据库的,用不到了 XML标签//操作XML的,用不到了 都在jstl.jar,standar. ...

  3. javaweb学习总结(二十八)——JSTL标签库之核心标签

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

  4. jstl标签库示例二

    package app05b;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax ...

  5. 十、JSTL标签库

      l JSTL标签库(重点) l 自定义标签(理解) l MVC设计模式(重点中的重点) l Java三层框架(重点中的重点) JSTL标签库 1 什么是JSTL JSTL是apache对EL表达式 ...

  6. JSTL标签库的基本教程之核心标签库(二)

    JSTL标签库的基本教程之核心标签库(二) 核心标签库 标签 描述 <c:out> 用于在JSP中显示数据,就像<%= ... > <c:set> 用于保存数据 & ...

  7. Java第三阶段学习(十四、JSP动态页面、EL表达式、JSTL标签库)

    一.JSP技术 1.jsp脚本和注释 jap脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部,比如写在doget.dopost 内的代码 2) ...

  8. EL表达式与JSTL标签库(二)

    1.JSTL标签库 标签库 作用 URI 前缀 核心 包含Web应用的常见工作,如循环.输入输出等 http://java.sun.com/jsp/jstl/core c 国际化 语言区域.消息.数字 ...

  9. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

随机推荐

  1. P3239 [HNOI2015]亚瑟王——概率DP

    题面:亚瑟王 最近考试考期望很自闭啊,没做过这种类型的题,只能现在练一练: 所谓期望,就是状态乘上自己的概率:对于这道题来说,我们要求的是每张牌的伤害乘上打出的概率的和: 当然不是直接乘,因为给的是每 ...

  2. linux下安装apache和php和mysql

    我的系统环境时ubuntu 18.04.3,为了ROS: 首先:安装下面一堆软件包: sudo apt install nginx nginx-doc fcgiwrap sudo apt instal ...

  3. 系统调优:如何解决系统报错too many open files

    一.检查系统版本是否手工升级 关于lsb_release -a和/etc/issue显示的发行版本号不同,原因只有一个:系统内核手动升级了 对于高并发高http连接的应用程序例如www或Java,会遇 ...

  4. Go 语言入门(三)并发

    写在前面 在学习 Go 语言之前,我自己是有一定的 Java 和 C++ 基础的,这篇文章主要是基于A tour of Go编写的,主要是希望记录一下自己的学习历程,加深自己的理解 Go 语言入门(三 ...

  5. Python 中的 -> 是什么意思

    函数标注通常用于 类型提示:例如以下函数预期接受两个 int 参数并预期返回一个 int 值:```def sum_two_numbers(a: int, b: int) -> int:retu ...

  6. python脚本-excel批量转换为csv文件

    pandas和SQL数据分析实战视频教程 https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2& ...

  7. ubuntu系统调整时区和时间

    date: 2019-05-30  10:14:23 author:headsen  chen 个人原创博客,转录需要注明作者和出处. 1,安装ntpdate,同步标准时间 root@hk-confl ...

  8. FlowLayout实现

    package com.loaderman.customviewdemo; import android.content.Context; import android.util.AttributeS ...

  9. ES6深入浅出-2 新版函数:箭头函数 2 视频-2.视频 箭头函数杂谈

    杂谈coffeescript 箭头函数抄的是谁? coffeescript 双箭头的形式 箭头函数简洁的语法 数组内每一个值都平方一下 Map的写法 箭头函数的写法 平方后,每一个值再加1 numbe ...

  10. QML使用moveToThread线程【QML工程使用C++】

    一.需求来源 对于使用Qt线程,有两种方式,见本人其他文章:https://www.cnblogs.com/judes/p/6884964.html 个人认为QObject::moveToThread ...