jstl标签库的配置和使用步骤
- 格式:doc
- 大小:11.50 KB
- 文档页数:1


实验四:EL表达式和JSTL标签库的使用一、实验的目的(1)掌握EL表达式的使用。
(2)掌握JSTL标签库的使用。
二、实验内容与要求(1)学习EL表达式的原理和使用。
(2)了解JSTL标签库的原理及使用。
(3)EL实例的调试。
(4)JSTL实例的调试。
三、实验主要步骤1. EL表达式实例程序的调试(1)源代码el.jsp<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'el.jsp' starting page</title></head><body>45+36=${45+36}<br/><%=pageContext.getAttributesScope("info") %><br/>${info}<br/>ID:${user.id}<br/>ID:${er.id}<br>ID:${user[id]}<br/>name:${}<br/>age:${user.age}<br/>salary:${user.salary}空么?= ${empty user }><br/>Age>20:${user.age>=20 }<br/>ID is empty:${empty user.id }<br/></body></html>(2)源代码employeemain.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ taglib uri="/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>员工管理主菜单</title></head><body><h1>员工列表</h1><hr/><table width="100%" border="1"><tr bgcolor="#99FFFF"><td width="14%">编号</td><td width="14%">姓名</td><td width="14%">性别</td><td width="14%">省份</td><td width="14%">城市</td><td width="14%">民族</td><td width="20%">操作</td></tr><c:forEach var="emp" items="${emplist}"><tr><td width="14%"><a href="toview.do?id=${emp.stu_id}">${emp.stu_name }</a></td> <td width="14%">${emp.stu_id}</td> <td width="14%">${emp.sex}</td><td width="14%">${emp.province}</td><tdwidth="14%">${emp.area}</td><td width="14%">${emp.nation}</td><td width="20%"><a href="toModofy.do?id=${emp.stu_id}">修改</a><a href="toDelete.do?id=${emp.stu_id}">删除</a></td></tr> </c:forEach></table></body></html>运行结果截图:2. JSTL标签库的使用程序实例的调试(1)源代码fmt02.jsp<%@ taglib uri="/jsp/jstl/core" prefix="c" %><html><head><title>JSTL日期格式案例</title></head><body><h1>JSTL日期格式标记</h1><hr><jsp:useBean id="now" class="java.util.Date"></jsp:useBean><fmt:setLocale value="zh_CN"/>full格式日期:<fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full"/><br> long格式日期:<fmt:formatDate value="${now}" type="both" dateStyle="long" timeStyle="long"/><br>medium格式日期:<fmt:formatDate value="${now}" type="both" dateStyle="medium"timeStyle="medium"/><br>default格式日期:<fmt:formatDate value="${now}" type="both" dateStyle="default" timeStyle="default"/> <br>short格式日期:<fmt:formatDate value="${now}" type="both" dateStyle="short" timeStyle="short"/><br> <hr></body></html>运行结果截图:(2)源代码jstl01.jsp<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%@ taglib uri="/jsp/jstl/core" prefix="c" %><%@ taglib uri="/jsp/jstl/fmt" prefix="fmt" %><%@ taglib uri="/jsp/jstl/sql" prefix="sql" %><%@ taglib uri="/jsp/jstl/xml" prefix="x" %><%@ taglib uri="/jsp/jstl/functions" prefix="fn" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>JSTL应用</title></head><body><h1>c:forTokens标记使用</h1><hr/><c:set var="infos" value="10,30,40,50,60" /><c:forTokens items="${infos}" delims="," var="info" varStatus="status"><c:out value="${status.index}" />-<c:out value="${status.count}" />-<c:out value="${info}" /><br/></c:forTokens><hr/></body></html>运行截图:(3)源代码sql01.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="/jsp/jstl/core" prefix="c" %><%@ taglib uri="/jsp/jstl/fmt" prefix="fmt" %><%@ taglib uri="/jsp/jstl/sql" prefix="sql" %><%@ taglib uri="/jsp/jstl/xml" prefix="x" %><%@ taglib uri="/jsp/jstl/functions" prefix="fn" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>使用JSTL SQL标记</title></head><body><sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/student" user="root" password="root" var="infoData" scope="request" /><sql:query sql="select * from stuinfo" dataSource="${infoData}" var="emplist"scope="request"> </sql:query><h1>员工列表</h1><hr/><table width="100%" border="1"><tr bgcolor="#99FFFF"><td >编号</td><td width="14%">姓名</td><td width="14%">性别</td><td width="14%">省份</td><td width="14%">城市</td><td width="14%">民族</td><td width="20%">操作</td></tr><c:forEach var="row" items="${emplist.rows}"><tr><td width="14%"><a href="toview.do?id=${row.stu_id}">${row.stu_name }</a></td> <td width="14%">${row.stu_id}</td><td width="14%">${row.sex}</td><td width="14%">${row.province}</td><td width="14%">${row.area}</td><td width="14%">${row.nation}</td><td width="20%"><a href="toModofy.do?id=${row.empid}">修改</a><a href="toDelete.do?id=${row.empid}">删除</a></td></tr></c:forEach></table><hr/></body></html>运行截图:四、结论与体会EL表达式的目的是使用简洁的语法来替代jsp的表达式脚本<%=表达式%>,在jsp页面中输出动态的内容。
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。
在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。
JSTL标签库可分为5类:❑核心标签库❑I18N格式化标签库❑SQL标签库❑XML标签库❑函数标签库本章将对这些内容一一讲述。
9.1 核心标签库JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。
使用这些标签能够完成JSP页面的基本功能,减少编码工作。
(1)表达式控制标签:out标签、set标签、remove标签、catch标签。
(2)流程控制标签:if标签、choose标签、when标签、otherwise标签。
(3)循环标签:forEach标签、forTokens标签。
(4)URL操作标签:import标签、url标签、redirect标签。
在JSP页面引入核心标签库的代码为:<%@ taglib prefix="c" uri="/jsp/jstl/core" %>下面将按照功能分类,分别讲解每个标签的功能和使用方式。
9.2.1 表达式控制标签表达式控制分类中包括<c:out>、<c:set>、<c:remove>、<c:chtch>4个标签,现在分别介绍它们的功能和语法。
1.<c:out>标签【功能】:用来显示数据对象(字符串、表达式)的内容或结果。
在使用Java脚本输出时常使用的方式为:<% out.println(“字符串”)%><%=表达式%>在web开发中,为了避免暴露逻辑代码会尽量减少页面中的Java脚本,使用<c:out>标签就可以实现以上功能。
JSTL(JSP标准标签库)介绍JSTL(JSP标准标签库)介绍作者:令少爷(shaoye@)前言从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Stan dard Tag Library)的诞生。
因为工作中需要用到JSTL,但网上却苦于找不到有关JSTL的中文资料,所以就有了这篇文章。
JSTL简介JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。
JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomc at 4.x。
但是在即将推出的JSP 2.0中是作为标准支持的。
JSTL目前的最新版本为1.02,最终发布版为1.0。
JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。
标签库目前支持四种标签:标签URI前缀示例Core/jstl/corec<c:tagname ...>XML pr ocessing/jstl/xmlx<x:tagname ...>I18N capable form atting/jstl/fmtfmt<fmt:tagname ...>Database access (SQL)/jstl/sqlsql<sql:tagname ...>Core支持JSP中的一些基本的操作;XML processing支持XML文档的处理;I18N capable formatting支持对JSP页面的国际化;Database access (SQL)支持JSP对数据库的操作。
由于本人水平有限,本文仅介绍Core标签,如有兴趣,可一起探讨其它三种标签的使用与扩充。
EL语言介绍EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。
${imb.multiple == '2'}:计算有效范围内imb对象的属性multiple的值是否等于2,如果等于2则返回true,否则返回false${users}:返回有效范围内名为”users”的值,该值可以是任何对象,如:request.setAttribute(“users”,new ArrayList()); 这样得到的就是一个集合.三、部分标签使用说明1 、 <c:out>[说明]输出值,相当于 struts 中的 <bean:write>[举例]获得 request 中的属性: <c:outvalue="${requestScope.test_all}"/>获得 session 中的属性:<c:outvalue="${sessionScope.test_all}"/>获得 application 中的属性:<c:outvalue="${applicationScope.test}"/>2 、 <c:forEach>[说明]循环某个范围内的一个集合(可以是Collection、Set、List、Array 等)items----表示要循环的集合var---表示当前集合中的某条记录,可以对它进行访问[举例]3 、 <c:if>[说明]逻辑判断[举例]<c:if test="${imb.hmtb.typeid == 4}"><c:if test="${imb.multiple == '2'}">(10,270)</c:if><c:if test="${imb.multiple == '1'}">(10,290)</c:if> </c:if>4 、<c:set>[说明]设置不同的属性,并且指定它们的范围[举例]<c:set value="10000" var="maxUser" scope="application"/><c:set value="20" var="maxIdelTime" scope="session"/><c:set value="next.jsp" var="nextPage" scope="request"/>相当于:application.setAttribute(“maxUser”,”10000”);session.setAttribute(“maxIdelTime”,”20”);request.setAttribute(“nextPage”,”next.jsp”);一、什么是JSTLJSTL(JavaServerPages Standard Tag Library)JSP标准标签库。