JSTL
2018-11-09 02:36:15来源:博客园 阅读 ()
1.什么是JSTL?
JSTL全名为JavaServer Pages Standard Tag Library,是由JCP所指定的标准规格,主要提供给java web开发人员一个标准通用的标签函数库。web程序开发人员能够利用JSTL和ELl来开发web程序,取代传统直接在页面上嵌入java程序的做法,以提高程序可读性,维护性和方便性。
2.JSTL标签库的分类
- 核心标签(用的最多)
- 国际化标签(I18N格式化标签)
- 数据库标签(SQL标签,很少使用)
- XML标签(几乎不用)
- JSTL函数(EL函数)
3.核心标签库
从功能上可以分为4类:表达式控制标签,流程控制标签,循环标签,URL操作标签。
①表达式控制标签:out标签,set标签,remove标签,catch标签
②流程控制标签:if标签,choose标签,when标签,otherwise标签
③循环标签:forEach标签,forTokens标签
④URL操作标签:import标签,url标签,redirect标签,param标签
在jsp页面中引入核心标签库的代码为:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3.1 <c:out>标签使用总结
3.1.1 <c:out>标签主要用来显示数据的内容,就像是<%= scripting-language %>一样,和EL表达式的区别在于使用<c:out>标签可以对敏感的字符自动进行转换。
如以下代码:
<body> <h4>c:out</h4> <% request.setAttribute("book","<<java>>"); %> book:${requestScope.book} <br><br> book:<c:out value="${requestScope.book}"></c:out>
</body>
运行后显示:
查看网页的源代码:
<body data-genuitec-lp-enabled="false" data-genuitec-file-id="wc1-13" data-genuitec-path="/MyWebProject/WebRoot/tag/jstl.jsp"> <h4 data-genuitec-lp-enabled="false" data-genuitec-file-id="wc1-13" data-genuitec-path="/MyWebProject/WebRoot/tag/jstl.jsp">c:out</h4> book:<<java>> <br><br> book:<<java>> </body>
可以看到使用<c:out>时进行了特殊字符的转换。
3.1.2 <c:out>标签的属性
3.2 <c:set>标签可以为域对象赋值
<c:set var="name" value="koala" scope="page"></c:set> <br><br> name:${pageScope.name}
相当于
<%=pageContext.setAttribute("name","koala") %>
value可以使用EL表达式:
<c:set var="subject" value="${param.subject}" scope="session"></c:set> subject:${sessionScope.subject}
3.3 <c:remove>标签可以移除指定域对象的指定属性值
<c:remove>标签可以将<c:set>标签设置的值移除,使用时需要指定变量名和属性范围。例如,移除上面设置的name变量的属性值。
<c:remove var="name" scope="page"></c:remove>
3.4 <c:if>标签
<c:if>标签必须要有test属性,当test中的表达式结果为true时,执行标签体内容。<c:if>标签没有else,但可以把判断的结果储存起来,以备之后使用。像下面这样:
<c:if test="${requestScope.age>18}">成年!</c:if> <br><br> <c:if test="${requestScope.age>18}" var="isAdult" scope="request"></c:if> isAdult:<c:out value="${requestScope.isAdult}"></c:out> <br><br>
3.5 <c:choose>,<c:when>,<c:otherwise>标签
<c:choose> <c:when test="${param.age>60}">老年</c:when> <c:when test="${param.age>35}">中年</c:when> <c:when test="${param.age>18}">青年</c:when> <c:otherwise>未成年</c:otherwise> </c:choose>
c:choose,c:when,c:otherwise可以实现if...else if...else if...else的效果,但较为麻烦,其中c:choose以c:when,c:otherwise的父标签出现,并且c:when,c:otherwise不能脱离c:choose单独使用,c:otherwise必须在c:when之后使用。
3.6 迭代操作标签
<c:forEach>:可以对数组,Collection,Map进行遍历,可以指定起始位置begin(对于集合begin从0开始算),结束位置end,以及步长step。例如:
<c:forEach begin="1" end="10" step="2" var="i"> ${i} </c:forEach>
3.7 URL操作
JSTL包含三个与URL操作有关的标签,分别为:<c:import>,<c:redirect>和<c:url>。它们主要的功能是用来将其他文件的内容包含起来,网页的导向,还有url的产生。
<c:import>可以包含任何页面到当前页面。
<c:redirect>可以使当前jsp页面重定向到任何指定页面。
<c:url>产生一个url地址,可以根据Cookie是否可用来智能进行URL重写,对GET请求的参数进行编码,可以把产生的URL存储在域对象中的属性中,还可以使用c:param为URL添加参数(c:url会对参数进行自动的转码)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 5月到6月程序员到底经历了和什么,工资狂跌***元,你是否也 2020-06-10
- 为什么阿里巴巴Java开发手册中不允许魔法值出现在代码中? 2020-06-09
- 计算机基础到底是哪些基础?为什么很重要! 2020-06-08
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用 2020-06-06
- 高手眼中的观察者模式有什么不一样 2020-06-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash