JavaWeb中的JSTL操作
来源:互联网 发布:页面加载时执行js 编辑:程序博客网 时间:2024/06/14 07:09
前边我们讲过了JavaWeb中的EL表达式语言和如何自定义标签,下边我们来说一说Javaweb提供的一个JSP标准标签库,JSTL。开发人员可以借助于EL表达式语言和标准标签库来完成web程序,取代传统的直接在JSP页面上编写Java代码的方式,提高程序的可读性和维护性。
1. 简介JSTL
Javaserver page standard tag library , 中文名称是Java服务器页面标准标签库,即JSP标准标签库。
2.JSTL的分类
① 核心标签库:重点
② I18N国际化标签库:了解
③ SLQ标签库:基本不用
④ XML标签库:基本不用
⑤ 函数标签库:基本不用
需要注意的是:这些JSTL的标签库支持EL表达式语言,即可以在其标签的value属性中使用EL来在JSP页面上输出域对象中的值。一般JSTL也要结合EL表达式来完成JSP页面的开发。
需要注意的是:大部分标签的显示值或者传入值或者输出值都必须使用EL表达式通过域对象完成操作,而不可以直接使用Java对象来当做值。
3.使用步骤
① 导入两个jar包:standard.jar和JSTL.jar
② 在页面上使用taglib指导入这些标签库
4.核心标签库的分类
① 表达式操作:out/set/remove
out标签:和EL表达式的功能一致,都是将域对象中的属性的值输出到JSP页面上,但是比EL表达式的功能更强,可以自动转义,例如:输出<<java>>这个字符串就无法使用EL表达式完成,但是却可以使用out的标签结合EL表达式完成。<c:out value="${}">
set标签:这个标签一是可以将Java变量的键值对放入到域对象中,如:<c:set var="name" value="liucc" scope=“page”></c:set>
二是可以将请求参数的值赋值给域对象中的属性的属性,如:<c:set value="${param.id}" target="${requestScope.user}" property="id"></c:set>
② 流程控制:if/choose/when/otherwise
<c:if />标签:这个标签没有else if /else操作,但是可以将判断内容的返回值true/false保存在域对象中供下次使用,如:<c:if test="${requestScope.user.id>20}" var="id" scope="page" ><c:if>
<c:choose><c:when></c:when><c:otherwise></c:otherwise></c:choose>可以实现if00else if -- else的操作,但是有点麻烦。
③ 迭代操作:forEach/forTokens
<c:forEach />:这个标签可以循环遍历数组、集合、Map。
各个属性:items表示正在遍历的集合/Map/数组。var表示集合/Map/数组中正在遍历的对象。begin表示开始遍历的下标位置(需要注意的是:这个下标位置和对象所在的容器当中的下标位置是一致的)。end表示结束遍历的下标位置。varStatus这个标识正在遍历对象的状态信息,如此对象所在容器中的索引位置等等信息。如:<c:forEach items="${requestSope.users}" var="user" > ${user.id} , ${user.name} </c:forEach> <c:forEach items="${requestSope.users}" var="user" varStatus="status"> ${user.id} , ${user.name} , ${status.index} , ${status.count} </c:forEach>
需要注意的是:在<c:forEach/>标签的处理类中,实际上是将每一个遍历的对象都放入到了pageContext域对象中,所以我们在标签体内通过${pageContext.user.id}也是可以获取的。
<c:forTokens />:这个标签可以遍历浏览一个字符串中以特定间隔符号分割的所有子串成员。如:<c:forTokens items="" var="" delims=""><c:forTokens>
④ URL操作:forward/url/import
<c:redirect url="" />:这个标签可以重定向请求到新的页面。需要注意的是,这个标签中的/代表的是当前WEB应用的根目录,因为他首先是一个标签,需要web服务器来先进行解析。而response.sendRedirect()方法中的/代表的是当前站点的根目录,因为他发送了两次请求,第一次请求的响应需要先交给浏览器处理。我们还可以使用<jsp:forward url="" />来转发到一个页面。
<c:import url="" />:这个标签可以将任何的页面包含到当前页面。
<c:url value="" var="" scope="" /> :这个标签标示产生一个URL地址,可以将其存入到域对象中,并且可以智能的判断cookie是否需要智能的进行URL重写(即当cookie禁用时,将JSESSIONID放入到URL的后边传递)。其中的value属性值的/代表当前WEB引用的根目录,因为它首先是一个标签,需要交由WEB服务器去测试。·
- JavaWeb中的JSTL操作
- javaweb中的jstl标签
- JavaWeb JSTL
- JAVAWEB-JSTL
- JavaWeb:JSTL
- c3p0在javaWeb中的操作
- javaweb—jstl如何循环List中的Map数据
- javaweb jstl简易练习
- JavaWeb---JSTL数据库标签
- 10017---JavaWeb基础--JSTL
- JavaWeb笔记-JSTL
- javaWeb基础知识----JSTL
- 02-JavaWeb-JSTL标签
- JavaWeb 08 JSTL
- Javaweb之JSTL
- javaWeb jstl的基础使用
- javaweb之jstl标签库
- javaWeb jstl的基础使用
- 构造函数可以为虚函数吗?
- Qt-JSON的使用
- 在 Kali Linux 中如何安装 Google Chrome
- angular1.5的自身缺陷之一
- UC/OS-II(一)资料绪论
- JavaWeb中的JSTL操作
- Qt 学习之路 2(22):事件总结
- 前面有人贡献,后辈才有强大的靠山
- Oracle与MySQL的数据类型转换总结
- Java中泛型的理解
- 工厂设计模式
- Css3(03)文字与字体样式
- 安卓改机技术揭秘(一) 工具篇
- ping命令的高级用法