JSTL核心标签库简介

JSTL中的核心标签库主要用于完成基本的逻辑运算,在开发中使用较多。

在开发前导入相关jar包之后,还需要在页面中通过 taglib 指令将标签库导入:

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

这是核心库的头 定死了的啊  阿帕奇规定这样使用的:

我们开始讲解  核心库中有哪些标签:

c:out标签

用于在页面上输出 EL 表达式的值,该标签不常使用,因为不使用该标签也能够在页面上输出EL表达式。

例:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><%request.setAttribute("name", "bihu");%>为什么不经常用?   因为直接el表达式即可输出:<br><br>1. el表达式直接输出: ${ name }<br>2. 用c:out 标签:     <c:out value="name :  ${ name }"></c:out></body>
</html>  

所以,,,为什么不经常用...


c:catch标签

当有异常发生时,用于捕获异常。相当于 try-catch 中的 catch 代码块,该标签中只有一个属性 var,是捕获到的异常对象,名称可以自定义。该标签不常用,一般不会在页面中显示异常信息。

<c:catch var="e">${ pageContext.name }        <%-- 捕获的是这个异常!  就像 try - catch 一样 这里故意给个异常给他啊! --%></c:catch><%-- 然后我们将其捕获的异常栈输出: --%>
<br>
捕获的异常: ${ e.message  }

一般会用 调试可能用一下 。


c:if标签

该标签主要用于条件判断。

  • test:判断的条件。若为 true,则执行标签体中的内容,否则不执行。
  • var:存储 test 的判断结果。不常用。
  • scope:存储 test 判断结果的变量的存放范围。不常用。

三个属性 先看代码:

<% request.setAttribute("person", "user");
%>
<c:if test="${ person == 'user' }" var="flag" scope="request">管理员<br>var  : ${ flag }<br>
</c:if>

至于 scope 我也不知道 反正不常用 ... 晚点问老师


:choose标签

实现多分支判断。类似于 switch-case 语句。一个 标签中可以包含多个与一个。

这玩意和switch 差不多:

例:

 <% request.setAttribute("hobby", "Game");
%><c:choose><c:when test="${ hobby == 'Muisc' }">我喜欢听音乐</c:when><c:when test="${ hobby == 'football' }">我喜欢踢足球</c:when><c:when test="${ hobby == 'Game' }">我喜欢打游戏</c:when><c:when test="${ hobby == 'Basketball' }">我喜欢打篮球</c:when></c:choose> 


c:forEach标签

该标签用于循环遍历数组、集合(List、Set、Map),实际开发中使用较多。

各遍历都在里面:

 --------------------------c:forEach标签-------------------------------------<br>-------------1.遍历数组
<%    Object[] arr = {"北京","上海","广州","深圳"};    request.setAttribute("city", arr);
%>
<br>
<c:forEach items="${ city }" var="city_temp">${ city_temp } <br>      <%-- 开始遍历 --%>
</c:forEach><br>-------------2.遍历 List<%    List<String> list = new ArrayList();list.add("张三");list.add("李四");list.add("王五");list.add("赵6");request.setAttribute("person", list);
%>
<br>
<c:forEach items="${ person }" var="person_temp">${ person_temp } <br>      <%-- 开始遍历 --%>
</c:forEach>
<br>-------------3.遍历 Set<%    Set<String> set = new HashSet();set.add("1 a");set.add("2 b");set.add("3 c");set.add("4 d");request.setAttribute("code", set);
%>
<br>
<c:forEach items="${ code }" var="code_temp">${ code_temp } <br>      <%-- 开始遍历 --%>
</c:forEach>-------------4.遍历 Map<%    Map<Integer,String> map = new HashMap();map.put(1, "信息工程学院");map.put(2, "现代教育学院");map.put(3, "机电技术学院");map.put(4, "艺术学院");map.put(5, "经济管理学院");request.setAttribute("college", map);
%>
<br>
<c:forEach items="${ college }" var="college_temp">${ college_temp.key } : ${ college_temp.value }<br>      <%-- 开始遍历 --%>
</c:forEach>

特别注意 Map 的遍历 如果你不以 xxx.key xxx.value  形式来的话 如果直接输出会输出 key=value 这种形式

c:forEach标签 还有几个标签要讲解: begin 、end 和 step 和 varStatus

begin  和 end 是开始和结束的意思  在这个标签中 他作用是 从哪里开始遍历 到哪里结束遍历 ,但是 都包括了 begin 和 end 【即包括自己】

step 迈步的意思  他的作用是 迈开遍历  如果为1 那就以一步走的方式遍历【即全部都遍历】 如果为2 那就以两步走的方式遍历: 例如: 有 1 2 3 4 5 6 我的step为2 那么我遍历的元素是:

1 3 5 , 所以这个你要认真看下就懂了

varStatus 是用来存储状态的,下图讲解了:【图源自于网上 满好的.】

所以 你就可以   varStatus.xxxx 使用了:

例: 用list做数据库 创建一个表格 规定 1 3 5 、 2 4 5 行 不同颜色:

<%-- 最好用 类 的方式存储! ! 这里演示就用String 和 Integer 了 !!!  --%>
<%  Map<String,Integer> table = new HashMap();table.put("雷军", 32);table.put("柳传志", 29);table.put("马云", 33);table.put("马化腾", 41);table.put("陈欧", 22);request.setAttribute("person", table);
%><table border="1">
<tr>
<td>序号</td>
<td>姓名</td>
<td>年龄</td>
</tr><c:forEach items="${ person }"   var="person_temp" varStatus="i">
<tr style="${ i.index % 2 == 0 ? 'background-color:#7bbfea' :'background-color:#007947' }">
<td>
${ i.index }
</td>
<td>
${person_temp.key }
</td>
<td>
${person_temp.value }
</td>
</tr>
</c:forEach></table>

代码也写到了 集合哪里最好存储类 不然的话你只能存储就那么两个 如果是类,就可以 类.xx 这样代码健壮性和很方便 快捷 ,因为foreach遍历的是每个元素。。。。

关于 varStatus  图标的属性 自己多去使用即可!

图:


完全代码:

<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.Set"%>
<%@page import="java.util.HashSet"%>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
table{border-collapse:collapse;
}
</style>
</head>
<body>
<!-- --------------------------c:out标签------------------------------------- -->
<br>
<br><hr><%request.setAttribute("name", "bihu");%>为什么不经常用?   因为直接el表达式即可输出:<br><br>1. el表达式直接输出: ${ name }<br>2. 用c:out 标签:     <c:out value="name :  ${ name }"></c:out><hr>--------------------------c:catch标签------------------------------------- <c:catch var="e">${ pageContext.name }        <%-- 捕获的是这个异常!  就像 try - catch 一样 这里故意给个异常给他啊! --%></c:catch><%-- 然后我们将其捕获的异常栈输出: --%>
<br>
捕获的异常: ${ e.message  }<hr>--------------------------c:if标签-------------------------------------
<br>
<br>
<% request.setAttribute("person", "user");
%>
<c:if test="${ person == 'user' }" var="flag" scope="request">管理员<br>var  : ${ flag }<br></c:if>--------------------------c:choose标签-------------------------------------<br><% request.setAttribute("hobby", "Game");
%><c:choose><c:when test="${ hobby == 'Muisc' }">我喜欢听音乐</c:when><c:when test="${ hobby == 'football' }">我喜欢踢足球</c:when><c:when test="${ hobby == 'Game' }">我喜欢打游戏</c:when><c:when test="${ hobby == 'Basketball' }">我喜欢打篮球</c:when></c:choose>
<br>--------------------------c:forEach标签-------------------------------------<br>-------------1.遍历数组
<%    Object[] arr = {"北京","上海","广州","深圳"};    request.setAttribute("city", arr);
%>
<br>
<c:forEach items="${ city }" var="city_temp">${ city_temp } <br>      <%-- 开始遍历 --%>
</c:forEach><br>-------------2.遍历 List<%    List<String> list = new ArrayList();list.add("张三");list.add("李四");list.add("王五");list.add("赵6");request.setAttribute("person", list);
%>
<br>
<c:forEach items="${ person }" var="person_temp">${ person_temp } <br>      <%-- 开始遍历 --%>
</c:forEach>
<br>-------------3.遍历 Set<%    Set<String> set = new HashSet();set.add("1 a");set.add("2 b");set.add("3 c");set.add("4 d");request.setAttribute("code", set);
%>
<br>
<c:forEach items="${ code }" var="code_temp">${ code_temp } <br>      <%-- 开始遍历 --%>
</c:forEach>-------------4.遍历 Map<%    Map<Integer,String> map = new HashMap();map.put(1, "信息工程学院");map.put(2, "现代教育学院");map.put(3, "机电技术学院");map.put(4, "艺术学院");map.put(5, "经济管理学院");request.setAttribute("college", map);
%>
<br>
<c:forEach items="${ college }" var="college_temp">${ college_temp.key } : ${ college_temp.value }<br>      <%-- 开始遍历 --%>
</c:forEach><br>
------------------------------------制作表格
<%-- 最好用 类 的方式存储! ! 这里演示就用String 和 Integer 了 !!!  --%>
<%  Map<String,Integer> table = new HashMap();table.put("雷军", 32);table.put("柳传志", 29);table.put("马云", 33);table.put("马化腾", 41);table.put("陈欧", 22);request.setAttribute("person", table);
%><table border="1">
<tr>
<td>序号</td>
<td>姓名</td>
<td>年龄</td>
</tr><c:forEach items="${ person }"   var="person_temp" varStatus="i">
<tr style="${ i.index % 2 == 0 ? 'background-color:#7bbfea' :'background-color:#007947' }">
<td>
${ i.index }
</td>
<td>
${person_temp.key }
</td>
<td>
${person_temp.value }
</td>
</tr>
</c:forEach></table></body>
</html>  

说明: 这里为什么一直用request这个域存储属性? 随便的啊 这里图方便 你可以用其他的,比如pageContext 、 session 、 什么什么都可以 , 你喜欢。

这里就说那么多常用的 还有很多自己去百度....
                    完。

9. JSP - 核心标签库相关推荐

  1. JSP标准标签库JSTL总结

    JSP标准标签库JSTL总结 J STL封装了JSP应用的通用核心功能.     标签分5类:核心标签,格式化标签,SQL标签,XML标签,JSTL函数. JSTL库安装     Tomcat安装JS ...

  2. Java-JSTL(JSP标准标签库)

    前言 从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Li ...

  3. JSP标准标签库(JSTL)--简介

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

  4. java核心标签库,16.JSTL标签库(我的JavaEE笔记)

    主要内容:(工程el_example中6.jsp) 标签 标签 标签 标签 标签 标签 标签 标签 标签 JSTL标签库中包含核心标签库.国际化标签库.数据库标签.XML标签和JSTL函数(EL函数) ...

  5. JSTL (JSP标准标签库)

    JSTL的标签库 c标签(core标签库) fmt标签(国际化标签库) xml标签 sql标签 jstl函数库(EL函数) JSTL的使用 1.引入JSTL的jar包 2.新建jsp页面 3.在jsp ...

  6. JSP标准标签库、通用标签

    JSP标准标签库.通用标签 JSP标准标签库(JSP Standard Tag Library,JSTL)是实现Web应用程序中常见的通用功能的定制标签库集,程序员使用JSTL标签来避免在JSP页面中 ...

  7. JSTL 核心标签库标签共有13个

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  8. 【JSTL】JSP 标准标签库JSTL学习

    JSTL 标签库 1.什么是JSTL 标签库 JSTL 是apache 对EL 表达式的扩展(也就是说JSTL 依赖EL),JSTL 是标签语言!JSTL 标签使用以来非常方便,它与JSP 动作标签一 ...

  9. java中jstl核心包丢失,小博老师解析Java核心技术 ——JSTL核心标签库

    [引言] JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core.format.xml 和 sql)和一对通 ...

最新文章

  1. Android屏幕像素密度适配详解
  2. 傅里叶变换取代Transformer自注意力层,谷歌这项研究GPU上快7倍、TPU上快2倍
  3. CM5.x配置spark错误解决
  4. 异常检测概览——孤立森林 效果是最好的
  5. C#_获取 SQL服务器列表
  6. 带你走进SAP项目实施过程——立项
  7. HTML、CSS 和 JS框架之Bootstrap
  8. 交叉编译Python-2.7.13到ARM(aarch32)平台
  9. 要不要买保险,看这篇就够了
  10. DataList控件中使用Xml数据源
  11. 82. Session 应用
  12. android 调出键盘表情_Android--如何优雅的切换表情和键盘(原理)
  13. erlang随机数问题
  14. 如何处理DDoS***
  15. 聚类 轮廓 matlab,Matlab聚类分析
  16. 通过TCP网络协议实现控制台多人聊天功能,另附私聊@功能。(java)
  17. 第22章 声音与音乐
  18. sql函数RIGHT的简单用法
  19. IT项目经理成长手记学习(一)
  20. python美化excel_Python 使用 prettytable 库打印表格(美化输出)

热门文章

  1. 懂java转python容易吗_Java转行学Python难不难?老男孩IT教育
  2. error: resource android:attr/elevation not found error: resource android:attr/translationZ not found
  3. 共享内存 设计原理-shm
  4. Win10:无法生成“D:\System Volume Information“ 下常规子目录的列表。拒绝访问。
  5. 【游戏开发】实现简单对话框及音乐播放
  6. CentOS下 更改mysql数据存放目录
  7. perl 数组grep_Perl数组Grep()函数
  8. 计算机动画是矢量动画吗,计算机动画画面的视觉特征
  9. 祝贺深圳华南销售部成功签订广州某会议室室内P2.5全彩LED显示屏项目
  10. TriggerPrefab 拖拽物体