JSTL标签库简介

JSTL叫做标准标签库,但实际上它是由5个功能不同的标签库组成。当使用标签库时,必须在jsp页面的顶部使用<%@  taglib %>指令定义引用的标签库和访问前缀。这5中标签库及taglib指令如下所示:

(核心标签库)<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

(格式标签库)<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

(SQL标签库)<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

(XML标签库)<%@ taglib prefix="xml" uri="http://java.sun.com/jsp/jstl/xml" %>

(函数标签库)<%@ taglib prefix="functions" uri="http://java.sun.com/jsp/jstl/functions" %>

其中常用的就是(核心标签库)和(格式标签库)

一:(核心标签库)(常用的)

1.<c:out >将表达式的值输出到页面上相当于<%= %>或EL表达式${}

(有两种语法格式,一种有标签体一种没有标签体,但是输出的结果都是相同的,value就是定义要输出的值)

2.<c:set />变量设置标签

3.流程控制标签:

I、<c:if>条件判断标签,虽然没有对应的else标签,但是JSTL提供了<c:chose >, <c:when >, <c:otherwise >标签可以实现if else的功能。

<c:if>有两种语法格式:

语法一:

语法二:

II、<c:chose >, <c:when >, <c:otherwise >标签,在一个<c:choose>标签中可以包含多个<c:when>标签来处理不同条件的业务逻辑,但是只能有一个<c:otherwise>标签来处理默认条件的业务逻辑。(<c:chose >标签只能作为<c:when >, <c:otherwise >标签的父标签来进行使用,它没有相关的属性,另外在<c:chose >标签中除了空白字符外只能包括 <c:when >, <c:otherwise >标签

实例如下:

III、循环标签(常用的是<c:forEach>)

<c:forEach>循环标签可以根据循环条件,遍历数组和集合类中的所有或者部分数据,它的语法格式也有两种。

首先说明一下forEach中的各项属性:
items:用于指定循环遍历的对象,多用于数组或者集合类。该属性的属性值可以使数组、集合类、字符串和枚举类型,一般通过EL表达式指定,(在集合成员迭代中这是必选属性),其他属性均是可选属性。
var:用于指定循环体的变量名,该变量用于存储items指定的对象的成员。
begin:用于指定循环的起始位置,如果没有指定,则从集合的第一个值开始迭代。可以使用EL。
end:用于指定循环的终止位置,如果没有指定,则一直迭代到集合的最后一位。可以使用EL。
step:用于指定循环的步长,可以使用EL。
varStatus:用于指定循环的状态变量,该属性还有4个状态属性:
index:int类型,当前循环的索引值,从0开始
count:int类型,当前循环的循环计数,从1开始
first:是否为第一次循环
last:是否为最后一次循环

语法一:集合成员迭代

语法二:数字索引迭代

当加上属性step时:

<c:forEach>标签还可以加varStatus="idx",然后在里面我们可以进行判断比如${idx.index>0}或者${idx.index++}
获取一个list集合的长度,可以使用fn函数

要导入函数标签库<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

${fn:length(product.selllingPoints)}

时间: 2024-10-19 04:35:13

JSTL标签库简介的相关文章

java基础开发—jstl标签库

在DRP项目中.接触到了JSTL标签库. 在未使用Jstl之前,我们使用JSP脚本实现一些声明或是表达式任务,做一些业务相关操作时,须要在页面中嵌入大量的java代码.在DRP项目开发前期.使用jsp页面给我的感受就是.jsp页面什么活都能干,权利过高.导致的结果就是,jsp页面提高了程序的复杂性.增强了代码维护的复杂度.以及代码阅读的困难.对程序猿的要求也相对较高.比如,虽然精通页面设计的开发者来维护jsp.也经常须要依赖于经验丰富的程序猿.所以须要一种技术来解决这些问题,以下简介一下jstl

jstl标签库基础教程及其使用代码

概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Standard Tag Library ).大多数 JSP 页面逻辑提供了实现的 JSTL 技术,该技术本身就是一个标签库. Sun 公司 Java 规范标准的 JSTL 由 apache jakarta 组织负责维护.作为开源的标准技术,它一直在不断地完善. JSTL 的发布包有两个版本: Stand

JSTL标签库大全

JSTL简介: 标准标签库JSTL的全名为:Java Server Pages Standard Tag Library. JSTL主要提供了5大类标签库: 1.       核心标签库: 为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作(如导入和重定向web页面等). 2.       国际化(I18N)标签库: 支持多种语言的引用程序. 3.       SQL标签库: 对访问和修改数据库提供标准化支持. 4.       XML标签库: 对XML文件处理和操

JavaWeb-12 (自定义标签库开发&amp;JSTL标签库)

JavaWeb-12:自定义标签库开发&JSTL标签库 自定义标签库开发 一.自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的Java类(标签处理器类). 2.编写标签库描述符(tld)文件,在tld文件中把标 实验:项目架构如下: a.tld <?xml version="1.0" encoding="utf-8" ?> &l

JSTL标签库:Remove标签Catch标签

看注释 <c:remove> 标签删除变量,无论是从指定的范围内或范围内的变量(如果没有指定范围).这个动作通常是不特别有帮助,但它可以帮助确保一个JSP范围内的资源,它负责清理. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!-- 核心标签: 核心组的标签是最常用的JSTL标签.以下是在您的JSP的语法包括JSTL核心库

使用JSTL标签库替换Struts1中的logic标签

如题所示,在做一个基于SSH框架的实战小项目时,发现不少地方都还在使用logic标签.这个标签不仅我不熟悉,而且在现在看来也显得过时了,因此我就想替换成我熟悉的JSTL标签 比如说,原来是这样的: <logic:present scope="request" name="onSaleGoodsList">      <table border="0">    <s:iterator id="goods&qu

JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% request.setCharacterEncoding("UTF-8"); %> <jsp:forward page="/index.jsp"> <jsp:param value="张三" name="userName&q

springMVC项目引入jstl标签库若干问题的总结

中午,不知道动到项目的哪个地方了,之前在联系人列表页面用的好好的jstl标签库突然报错了:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>的时候报错,说找不到uri.我之前是配置好了的,于是在Eclipse菜单条找到project-clean,清理当前项目,然后就好了.假设这种方法行不通,而你的项目恰好又是通过Maven来管理的,那么能够在项目上右键-选择run as-Maven

&lt;转&gt;JSTL标签库的版本

参考 http://www.bubuko.com/infodetail-1077023.html http://janedoneway.iteye.com/blog/1245949 从来没认为这是个问题,不过最近发现网上关于这方面的资料比较乱,现将自己的了解整理在此,以备查阅. ? 开发团队经常使用jstl标签库,开始也没在意,大家都是简单引入jstl.jar和standard.jar,后来发现这两个包也有版本差别,各项目小组用的不同,在jsp中定义也有差别,还会引起冲突和代码不兼容.于是想在网