JSTL
1. jstl的概述
  * apache的东西,依赖EL
  * 使用jstl需要导入jstl.jar、standard.jar
  * 四大库:
    > core:核心库,重点
    > fmt:格式化:日期、数字
    > sql:过时
    > xml:过时
2. 导入标签库
  * jar包
  * 在jsp页面中:<%@taglib prefix="前缀" uri="路径"%>
----------------------
core --> c标签
1. out和set
  * <c:out>:输出
    > value:可以是字符串常量,也可以是EL表达式
    > default:当要输出的内容为null时,会输出default指定的值
    > escapeXml:默认值为true,表示转义!
  * <c:set>:设置(创建域的属性)
    > var:变量名
    > value:变量值,可以是EL表达式
    > scope:域,默认为page,可选值:page、request、session、application
2. remove
  * <remove>:删除域变量
    > var:变量名
    > scope:如果不给出scope,表示删除所有域中的该名称的变量;如果指定了域,那么只删除该域的变量。
3. url
  * value:指定一个路径!它会在路径前面自动添加项目名。
    <> <c:url value="/index.jsp"/>,它会输出/day13_1/index.jsp
  * 子标签:<c:param>,用来给url后面添加参数,例如:
    <c:url value="/index.jsp">
      <c:param name="username" value="张三"/>  <!--可以对参数进行url编码!!-->
    </c:url>
    结果为:/day13_1/index.jsp?username=%ED%2C%3F%ED%2C%3F
  * var:指定变量名,一旦添加了这个属性,那么url标签就不会再输出到页面,而是把生成url保存到域中。
  * scope:它与var一起使用,用来保存url。
4. if:对应java中的if语句
  * <c:if test="布尔类型">...</c:if>,当test为值时,执行标签体内容!
5. choose:它对应java中的if/else if/ ... /else
  * 例如:
    <c:choose>
      <c:when test="">...</c:when>
      <c:when test="">...</c:when>
      <c:when test="">...</c:when>
       ... 
      <c:otherwise> ...</c:otherwise>
    </c:choose>
 
    等同与
    if(...) {
    } else if( ....) {
    } else if( ....) {
    } else if( ....) {
    } ...
    else { ...}
6. forEach
  它用来循环遍历数组、集合!
  它还可以用来计数方式来循环!
  计数方式:
  for(int i = 1; i <= 10; i++) {
    ...
  }
  <c:forEach var="i" begin="1" end="10">
    ${i}
  </c:forEach>
  属性:
    * var:循环变量
    * begin:设置循环变量从几开始。
    * end:设置循环变量到几结束。
    * step:设置步长!等同与java中的i++,或i+=2。step默认为1
----------------------
用来输出数组、集合!
<c:forEach items="${strs }" var="str">
 ${str }<br/>
</c:forEach>
等同于
for(String str : strs) {
  ...
}
属性:
* items:指定要循环谁,它可以是一个数组或一个集合
* var:把数组或集合中的每个元素赋值给var指定的变量。
----------------------
循环状态
可以使用varStatus来创建循环状态变量!
循环状态变量有如下属性:
  * count:循环元素的个数
  * index:循环元素的下标
  * first:是否为第一个元素
  * last:是否为最后一个元素
  * current:当前元素
<c:forEach items="${list }" var="ele" varStatus="vs">
${vs.index} ${vs.count } ${vs.first } ${vs.last } ${vs.current }<br/>
</c:forEach>
====================================
fmt库
  它是格式化库
<fmt:formatDate value="" pattern="">
value:指定一个Date类型的变量
pattern:用来指定输出的模板!例如:yyyy-MM-dd HH:mm:ss
--------------
<fmt:formatNumber value="${num1}" pattern="0.00">
  保留小数点后2位,它会四舍五入。如果不足2位,以0补位。
<fmt:formatNumber value="${num1}" pattern="#.##">
  保留小数点后2位,它会四舍五入。如果不足2位,不补位。
====================================
自定义标签
1. 步骤
  * 标签处理类(标签也是一个对象,那么就需要先有类!)
  * tld文件,它是一个xml
  * 页面中使用<%@taglib%>来指定tld文件的位置
2. 标签处理类
  SimpleTag接口:
  * void doTag():每次执行标签时都会调用这个方法;
  * JspTag getParent():返回父标签(非生命周期方法)
  * void setParent(JspTag):设置父标签
  * void setJspBody(JspFragment):设置标签体
  * void seetJspContext(JspContext):设置jsp上下文对象,它儿子是PageContext
  其中doTag()会在其他三个方法之后被tomcat调用。
3. 配置tld文件
tld文件一般都放到WEB-INF之下,这样保证客户端访问不到!
  <tag>
  
<name>myTag1</name> 指定当前标签的名称
  
<tag-class>cn.itcast.tag.MyTag1</tag-class> 指定当前标签的标签处理类!
  
<body-content>empty</body-content> 指定标签体的类型,我们这里使用的是空标签!
  </tag>
4. 页面中指定tld文件位置
<%@ taglib prefix="it" uri="/WEB-INF/tlds/itcast-tag.tld" %>
导标签库,就是为页面指定tld文件的位置!
-------------------------------
标签体内容<body-content>
  * empty:无标签体!
  * JSP:jsp2.0已经不在支持这个类型了!表示标签体内容可以是:java脚本,可以是标签,可以是el表达式
  * scriptless:只能是EL表达式,也可以是其他的标签!
  * tagdependent:标签体内容不会被执行,而是直接赋值标签处理类!
不在执行标签下面内容的标签!
在标签处理类中的doTag()中使用SkipPageException来结束!
  Tomcat会调用标签处理类的doTag()方法,然后Tomcat会得到SkipPageException,它会跳过本页面其他内容!
--------------------------------
标签属性<attribute>
步骤:
1. 给你的标签处理类添加属性!
  为标签处理类添加属性,属性至少要且一个set方法!这个set方法会在doTag()方法之前被tomcat执行!所在doTag()中就可以使用属性了。
2. 在tld文件中对属性进行配置
  
<attribute>
  
<name>test</name> 指定属性名
  
<required>true</required> 指定属性是否为必需的
  
<rtexprvalue>true</rtexprvalue> 指定属性是否可以使用EL
  
</attribute>
==========================================

JavaWeb笔记——JSTL标签的更多相关文章

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

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

  2. JavaWeb之JSTL标签

    JSP中有了EL可以很方便的引用对象和属性,但是也有一些不足的地方,比如不能遍历对象列表这些,再加上JSTL(Java Standard Tag Library)的话那就完美了.JSTL主要包括cor ...

  3. 【JavaWeb】JSTL标签库

    JSTL标签库 JSTL标准标签库: JSTL用于简化JSP开发,提高代码的可读性与可维护性: JSTL由SUN(Oracle)定义规范,由Apache Tomcat团队实现: 引用JSTL核心库 核 ...

  4. JavaWeb 之 JSTL 标签

    JSTL 标签库 一.概述 1.概念 JSTL : JavaServer Pages Tag Library  JSP标准标签库. 是由 Apache 组织提供的开源的免费的 jsp 标签. 2.作用 ...

  5. 【JavaWeb】JSTL 标签库

    JSTL 标签库 简介 JSTL(JSP Standard Tag Library),即 JSP 标准标签库.标签库是为了替换代码脚本,使得整个 jsp 页面变得更加简洁. JSTL 有五个功能不同的 ...

  6. JavaWeb学习----JSTL标签库

    一.JSTL简介: JSTL全名为JavaServer Pages Standard Tag Library,中文名称为JSP标准标签函数库,目前最新的版本为1.2.JSTL是由JCP(Java Co ...

  7. IT兄弟连 JavaWeb教程 JSTL标签的使用

    假定甲方打算使用乙方开发的标签库,乙方把与标签库相关的所有文件打包成为了一个JAR文件(假定名为standard.jar),在这个JAR文件中包含以下内容: ●  标签处理类及相关的.class文件 ...

  8. [jsp学习笔记]jstl标签的使用

    jstl常用在html嵌套 <body> <% session.setAttribute("q", "yushi"); request.set ...

  9. 超全面的JavaWeb笔记day13<JSTL&自定义标签>

    1.JSTL标签库(重点) core out set remove url if choose when otherwise forEach fmt formatDate formatNumber 2 ...

随机推荐

  1. 团队开发-极速蜗牛-NABC模型

    特点:益智,操作简单. N(need):手机小游戏,可以让大家打发无聊的时间,比如:排队打饭,课间休息,等公交等地铁,拿出手机玩玩小游戏. A(approach):基于光的反射原理,编写的小游戏. B ...

  2. Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  3. Eclipse的python插件安装

    网上找了一些资料都没有成功~~然后自己装的过程中编辑记录了一些 当然博客园里也有人用这一种方法也可以参考IBM中的 http://www.cnblogs.com/visec479/p/4139882. ...

  4. 前端之JavaScript第一天学习(2)-JavaScript 使用

    HTML 中的脚本必须位于 <script> 与 </script> 标签之间.脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中 ...

  5. java中的IO流之文件复制

    O(∩_∩)O哈哈~ 1.综述 一门成熟的语言肯定具备的几个模块:IO,通信,线程,UI...... Java作为一门成熟的程序语言,其IO流是比较复杂的.上个图大家感受下: 简单分析一下,IO分为两 ...

  6. 前端之JavaScript第三天学习(8)-JavaScript-对象

    JavaScript 中的所有事物都是对象:字符串.数字.数组.日期,等等. 在 JavaScript 中,对象是拥有属性和方法的数据. 属性和方法 属性是与对象相关的值. 方法是能够在对象上执行的动 ...

  7. selenium IDE--录制和回放脚本

    1 selenium IDE--录制脚本 准备工作:firefox 浏览器安装了selenium IDE 插件 实例:打开百度搜索“软件测试” firefox浏览器打开网址:https://www.b ...

  8. 《我是一只IT小小鸟》阅读笔记

    <我是一只IT小小鸟>,这本书对我来说,有可能我现在并不懂得那其中的道理,但是,我觉得它写的很好,很现在的我很相似,但是在里面,我看到了他们都在说,一开始可能并不对IT这门课有很深的见解, ...

  9. weiapi2.2 HelpPage自动生成接口说明文档和接口测试功能

    在开发Webapi项目时每写完一个方法时,是不是需要添加相应的功能说明和测试案例呢?为了更简单方便的写说明接口文档和接口测试HelpPage提供了一个方便的途径. 她的大致原理是:在编译时会生成.dl ...

  10. BZOJ1143 [CTSC2008] 祭祀river

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1143 题目大意: 给你n个点,点与点之间由有向边相连.如果u能到达v的话,那么他们就不能同 ...