JSTL
发布日期:2021-07-12 08:49:23 浏览次数:6 分类:技术文章

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

JSTL全名为JavaServer Pages Standard Tag Library 主要提供给JavaWeb开发人员一个标准通用的标签函数库.

Web程序开发人员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的可读性,维护性和方便性.

需要引入的jar 

jstl.jar

standard.jar

标签函数库主要分为5大类:

1.核心标签库(Core tag library)

2.I18N格式标签库(I18N-capable formatting tag library)

3.SQL标签库(SQL tag library)

4.XML标签库(XML tag library)

5.函数标签库(Functions tag library)

最常用的是 核心标签库

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

 

<c:out>

与el类似,比el更强大,能够对敏感的字符进行转换

<%        request.setAttribute("book", "<
>"); %>
book:${requestScope.book}

book:<>
<<book>> 

通过查看源文件,<c:out>会将敏感字符自动转义

book:<
>
<<book>>
 

设置escapeXml="false" 默认不进行转义

当从域中没找到book时,取默认值

 

<c:set var="name" value="java" scope="page"></c:set>

<%--
pageContext.setAttribute("name", "java");
--%>
name:${pageScope.name }

使用<c:set>向指定域对象中赋值,类似于setAttribute

value中可以放EL表达式

subject:${sessionScope.subject }

使用<c:set>为javaBean赋值

<%         Customer cust = new Customer();         cust.setId(1001);         request.setAttribute("cust", cust);     %>     ID:${requestScope.cust.id }     
ID:${requestScope.cust.id }

使用<c:remove>可以移除指定域对象中的指定属性

date:${sessionScope.date }

 

JSTL 流程控制

<c:if> 仅有if,没有else,但可以把判断的结果储存起来,以备之后使用

成年了
isAdult:

<c:choose>只能当做<c:when>,<c:otherwise>的子标签

在同一个<c:choose>中时,<c:when>必须在<c:otherwise>之前

<c:when>必须有test属性

在同一个<c:choose>时,<c:otherwise>必须是最后一个标签

老年
中年
青年
未成年

 

JSTL迭代操作

<c:forEach>,<c:forTokens>

遍历一个Collection,遍历数组同Collection

<%        List
custs = new ArrayList
(); custs.add(new Customer(1001,"AA","aa@java.com")); //index:0 custs.add(new Customer(1002,"BB","bb@java.com")); custs.add(new Customer(1003,"CC","cc@java.com")); custs.add(new Customer(1004,"DD","dd@java.com")); custs.add(new Customer(1005,"EE","ee@java.com")); custs.add(new Customer(1006,"FF","ff@java.com")); request.setAttribute("customers", custs); %>
${status.index},${status.count},${status.first},${status.last}:${custs.id }:${custs.name }:${custs.email }

遍历Map

<%        Map
custsMap = new HashMap
(); custsMap.put("a", new Customer(1001,"AA","aa@java.com")); custsMap.put("b", new Customer(1002,"BB","bb@java.com")); custsMap.put("c", new Customer(1003,"CC","cc@java.com")); custsMap.put("d", new Customer(1004,"DD","dd@java.com")); custsMap.put("e", new Customer(1005,"EE","ee@java.com")); custsMap.put("f", new Customer(1006,"FF","ff@java.com")); request.setAttribute("customers", custsMap); %>
${custs.key}-${custs.value.id }-${custs.value.name }-${custs.value.email }

可以用来获取属性名称

${attrName }

<c:forTokens>处理字符串的,类似于String的split

${s }

a

b
c.d.e.f;g;h

URL操作

包括3个 

<c:import>

<c:redirect>

<c:url>

 

1.<c:import> 可以包含任何页面到当前页面

<c:import url="http://www.baidu.com"></c:import>

2.<c:redirect>使当前jsp页面重定向到指定的页面

<c:redirect url="/a.jsp"></c:redirect>

<c:redirect url="http://www.baidu.com"></c:redirect>

/ 代表当前web应用的根目录,因为是交由servlet容器处理的

使当前JSP转发的指定页面可以使用

<jsp:forward page="/b.jsp"></jsp:forward>

/ 代表的是当前WEB应用的根目录

response.sendRedirect("/test.jsp");   / 代表的是WEB站点的根目录

3.<c:url> c:url产生一个url地址.可以根据Cookie是否可用来智能进行URL重写,对GET请求参数进行编码

可以把产生的URL存储在域对象的属性中. 还可以使用c:param为URL添加参数.

c:url会对参数进行自动的转码

value中的 / 代表当前web应用的根目录

aUrl:${aUrl }

结果:

aUrl:/testServlet/a.jsp?name=%e6%95%b0%e6%8d%ae%e5%ba%93

 

转载于:https://www.cnblogs.com/wq3435/p/5191570.html

转载地址:https://blog.csdn.net/ankan7400/article/details/102088946 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ActiveMQ跑起来
下一篇:Filter

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月16日 07时57分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

php应用技巧与实例,php语法技巧代码实例 2019-04-21
php学习笔记,php学习笔记:基础知识 2019-04-21
php熊掌号api,织梦程序用熊掌号api接入熊掌号自动提交方法 2019-04-21
php sap,谈谈你对Zend SAPIs(Zend SAPI Internals)的理解 2019-04-21
php手机版页,phpcms手机内容页面添加上一篇和下一篇 2019-04-21
DZ php升级,php升级记录 - shawnplaying的个人页面 - OSCHINA - 中文开源技术交流社区... 2019-04-21
php高并发锁,PHP+MySQL高并发加锁事务处理问题解决方法 2019-04-21
php扩展文件下载,php::使用ZipArchive扩展压缩文件并下载demo 2019-04-21
iis7 php 不显示验证码,thinkphp验证码显示不出来的解决方法 2019-04-21
Apache怎么出现php测试页面,测试 Apache Web 和 PHP 应用程序服务器_php 2019-04-21
php 及时输出,PHP缓冲区强制及时输出 2019-04-21
matlab多重分形广义函数谱,多重广义分形维数计算 - 程序语言 - Delphi&Pascal - 小木虫论坛-学术科研互动平台... 2019-04-21
php如何捕捉异常并抛出去,php抛出异常与捕捉特定类型的异常详解 2019-04-21
php 缓冲区溢出漏洞,在Linux 容器中对php-fpm缓冲区溢出漏洞的复现分析 ( CVE-2019-11043 )... 2019-04-21
acm php如何用,欧拉回路的使用&&http://acm.hdu.edu.cn/showproblem.php?pid=3018 2019-04-21
oracle获取表注释,Oracle获取表名,表注释,字段注释 2019-04-21
oracle library命中率,oracle命中率查询 2019-04-21
oracle合并sql,Oracle SQL-使用合并功能 2019-04-21
linux文件大小 按兆,du命令 实现Linux 某个文件夹下的文件按大小排序 2019-04-21
linux7.4查看系统版本,Centos 7 查看系统版本信息 2019-04-21