博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP--JSTL标签库举例+详解
阅读量:2442 次
发布时间:2019-05-10

本文共 3310 字,大约阅读时间需要 11 分钟。

JSTL概述

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。

JSTL标准标签库有5个子库,但随着发展,目前常使用的是它的核心库。

标签库 标签库的URI 前缀
C o r e \color{red}{Core} Core h t t p : / / j a v a . s u n . c o m / j s p / j s t l / c o r e \color{red}{http://java.sun.com/jsp/jstl/core} http://java.sun.com/jsp/jstl/core c \color{red}{c} c
I18N http://java.sun.com/jsp/jstl/fmt fmt
SQL http://java.sun.com/jsp/jstl/sql sql
XML http://java.sun.com/jsp/jstl/xml x
Functions http://java.sun.com/jsp/jstl/functions fn

JSTL下载与导入

JSTL下载:

从Apache的网站下载JSTL的JAR包。进入 “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载 JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包 进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于 实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)

JSTL导入:

将两个jar包导入我们工程的lib中,使用jsp的taglib指令导入核心标签库。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

JSTL核心库的常用标签

标签 描述
<c:out> 用于在JSP中显示数据,就像<%= … >
<c:set> 用户保存数据
<c:remove> 用于删除数据
<c:catch> 用来处理产生错误的异常状况,并且将错误信息存储起来
<c:if> 与我们在一般程序中用的if一样
<c:choose> 本身只当作<c:when>he <c:otherwise>的父标签
<c:when> <c:choose>的子标签,用来判断条件是否成立
<c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import> 检索一个绝对或相对URL,然后将其内容暴露给页面
<c:forEach> 基础迭代标签,接收多种集合类型
<c:forTokens> 根据指定的分隔符来分隔内容并迭代输出
<c:param> 用来给包含或重定向的页面传递参数
<c:redirect> 重定向至一个新的URL
<c:url> 使用可选的查询参数来创造一个URL
基础标签<c:out>:

<c:out value=“数据” default=“默认值”></c:out>

数据可以为常量值也可以是EL表达式
作用:将数据输出给客户端。

<%		request.setAttribute("str", "字符串");	%>	

c:out

页面显示:

在这里插入图片描述

基础标签c:set 和 c:remove 标签:
  • <c:set var=“键名” value=“数据” scope=“域”></c:set>

    作用:存储数据到作用域对象中
    var:表示存储的键名
    value:表示存储的数据
    scope:表示要存储的作用域对象page、request、session、application

  • <c:remove var=“键名” scope=“域”/>

    作用:删除作用域中的指定键的数据
    var:表示要删除的键的名字
    scope:表示要删除的作用域(可选)
    注意:如果不指定作用域的情况使用该标签删除数据,会将四个作用域对象中的符合要求的数据全部删除。

c:set

c:remove

<%-- 删除page域中的 --%>

页面显示:

在这里插入图片描述

逻辑标签<c:if> 和 <c:choose>:
前端代码

作用:进行逻辑判断,相当于java代码的但分支判断

注意:逻辑判断标签需要依赖于EL的逻辑运算,也就是表达式中涉及到数据必须从作用域中获取。

执行内容
执行内容
.....
执行内容

作用:用来进行多条的逻辑判断,类似java中的多分支语句

注意:条件成立只会执行一次,都不成立则执行otherwise

c:if

今天天气真好

c:choose

奖励900元
奖励800元
奖励700元
挨顿毒打

页面显示:

在这里插入图片描述

循环标签<c:forEach>:
循环体

作用:循环内容进行处理

使用:begin:声明循环开始位置
end:循环结束位置
step:步长
varStatus:声明变量记录每次循环的数据(下标,次数,是否是第一次循环,是否是最后一次循环)
$ {vs.index} – $ {vs.count} – $ {vs.first} – ${vs.last }
注意:数据存储在作用域中,需要使用EL表达式。
items:声明要遍历的对象。结合EL表达式获取对象。
var:声明变量记录每次循环的结果。存储在作用域中,需要使用EL表达式获取。

常量循环

${vs.index}--${vs.count}--${vs.first}--${vs.last }

动态循环

<% ArrayList
list = new ArrayList
(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); request.setAttribute("list", list); %>
${str}

遍历map

<% HashMap
map = new HashMap
(); map.put("一","哈哈"); map.put("二", "嘿嘿"); request.setAttribute("map", map); %>
${m.key }--${m.value }

创建表格

课程名称 教师 价格 重要性
${str } ${str } ${str } ${str }

页面显示:

在这里插入图片描述

转载地址:http://tjsqb.baihongyu.com/

你可能感兴趣的文章
MySQL购InnoDB不敌甲骨文宣布开放数据引擎(转)
查看>>
银行监会选红旗Linux建设公文传输系统(转)
查看>>
网上交易中帐号和密码被盗的解决途径(转)
查看>>
Java线程总结(转)
查看>>
Java学习之类的属性(转)
查看>>
轻松搞定Java内存泄漏(转)
查看>>
Java学习之值传递(转)
查看>>
linux中crontab命令(转)
查看>>
牛人请进 小弟跪求(转)
查看>>
Linux版本凌乱痛失市场(转)
查看>>
大家好,新学生。 请问怎么升级Redhat9.0 kernel 2.4.X-->2.6.18 的详细过程(转)
查看>>
FreeBSD6.1+无线+永中......桌面安装【附笔记】(转)
查看>>
adsl设置(转)
查看>>
Wii将有一个可升级的Linux操作系统(转)
查看>>
Linux机为先锋智能机和PDA06销量大(转)
查看>>
Oracle与SQL Server在企业应用中的比较(转)
查看>>
让FreeBSD使用ntpd同步时间(转)
查看>>
用cat命令查看文件内的特殊字符(转)
查看>>
debian sid下vmware不能运行一则(转)
查看>>
Linux操作系统套接字编程的5个隐患(转)
查看>>