现在不怎么做前台开发,对jstl已经很陌生了,偶尔要用的时候很多基本的东西一下想不起来,故转载本文用作备用资料。
原文出处:http://blog.csdn.net/rocket5725/archive/2009/03/31/4038403.aspx
======================================================================
一、在Tomcat中安装JSTL
前提 OS: WIN2003;Tomcat5.5;tomcat已经配置好。
1.准备jstl
到http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/下载jakarta-taglibs-standard-1.1.2.zip
解压后成为jakarta-taglibs-standard-1.1.2
2.准备web开发目录
比如我的web目录系统默认目录%tomcat_home%\webapps\ROOT下,工作目录为ROOT,也可以自定义工作目录,但必须要保证工作目录下建立WEB-INF\lib,WEB-INF\classes
3.拷贝.jar文件
将jakarta-taglibs-standard-1.1.2\lib\下的两个jar文件:standard.jar和jstl.jar文件拷贝到工作目录的\WEB-INF\lib\下
4.拷贝.tld文件
将jakarta-taglibs-standard-1.1.2\tld\下的15个tld类型文件拷到"Working folder\WEB-INF\tld"下
5.在工作目录下的\WEB-INF\下建立web.xml文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-1_0</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-1_0-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-1_0-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/c-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-1_0</taglib-uri>
<taglib-location>/WEB-INF/tld/c-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/tld/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-1_0</taglib-uri>
<taglib-location>/WEB-INF/tld/sql-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-1_0-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/sql-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/tld/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-1_0</taglib-uri>
<taglib-location>/WEB-INF/tld/x-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-1_0-rt</taglib-uri>
<taglib-location>/WEB-INF/tld/x-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
<taglib-location>/WEB-INF/tld/fn.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/permittedTaglibs</taglib-uri>
<taglib-location>/WEB-INF/tld/permittedTaglibs.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/scriptfree</taglib-uri>
<taglib-location>/WEB-INF/tld/scriptfree.tld</taglib-location>
</taglib>
</web-app>
6.建立一个名为test.jsp文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>测试你的第一个使用到JSTL 的网页</title>
</head>
<body>
<c:out value="欢迎测试你的第一个使用到JSTL 的网页"/>
</br>你使用的浏览器是:</br>
<c:out value="${header['User-Agent']}"/>
<c:set var="a" value="David O'Davies" />
<c:out value="David O'Davies" escapeXml="true"/>
</body>
</html>
7.显示结果:
欢迎测试你的第一个使用到JSTL 的网页
你使用的浏览器是:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SailBrowser; .NET CLR 1.1.4322) David O'Davies
8.注意的问题
主要的一个问题还是路径的问题,笔者配置了好几次都不能成功,就是把工作目录给弄错了,把项目的目录误认为是工作目录,一直在项目的目录下配置文件,其实应该在工作目录下配置,当然可以把工作目录改成项目的目录,问题也就可以解决了。
9.常出现的问题和提示:
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
出现这个问题主要一种可能是工作目录的\WEB-INF\lib\下缺少standard.jar和jstl.jar文件,另外一种可能是web.xml没有进行TAG的正确配置。
According to TLD or attribute directive in tag file, attribute value does not accept any expressions
应用部署运行的时候出现JSP异常, 发生在使用JSTL库的时候: According to TLD or attribute directive in tag file, attribute value does not accept any expressions, 可能是因为使用了JSP2.0版本, 同时又没有使用JSTL core库的备用版本(RT库), 以下有两种处理方法:
a. 修改web.xml.
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
改为2.3版本的
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
b. 使用JSTL core RT库
JSTL core库的有两种taglib伪指令, 其中RT库即是依赖于JSP传统的请求时属性值, 而不是依赖于EL来实现(称为EL库.JSP2.0将支持EL)
JSP中使用<%@ taglib uri=http://java.sun.com/jstl/core prefix="c"%>在2.3版本都可以,在2.4就不行了, 难道是版本不兼容吗?
只要将
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
改为
<%@ taglib uri=http://java.sun.com/jstl/core_rt prefix="c"%>
就没有问题了
三、标签的使用
C标准标签库
Taglib-http://java.sun.com/jstl/core
基础:
1.jsp页面引入C标签库:
<@taglib uri=”http://java.sun.com/jstl/core” prefix=”c”> //引入标签库 前缀为c
2.c标签库的标签列表
C标签库例举
标签名 用处
<c:choose>
<c:forEach>
<c:forTokens>
<c:if>
<c:import>
<c:otherwise>
<c:out> 把对象的数值输出到JspWriter
<c:param>
<c:redirect>
<c:remove> 删除某个变量或属性
<c:url>
<c:when>
<c:set> 1. 用于在某个作用范围(Request、Session、Application等)中设置某个值
2. 设置某个对象的属性
<c:catch> 捕获嵌在它里面的标签抛出异常
(1)<c:catch>标签
作用: 捕获嵌在它里面的标签抛出异常
<%@taglib uri=”http://java.sun.com/jstl/core” prefix=”c”%>
<%@page contentType=”text/html;charset=gb2312” %>
<html>
<head><title>c:catch标签演示</title></head>
<body>
<c:catch var=”myException” > //设置异常句柄,好比JAVA的 Exception e一样
<%
String str=”abc”;
int i =Integer.parseInt(str); //此处转换产生异常,因为abc字符串不能转换成数值
%>
</c:catch>
异常:<c:out value=”${myException }”/>
</body>
</html>
(2)<c:set>标签
作用: 1.用于在某个作用范围(Request、Session、Application等)中设置某个值
2.设置某个对象的属性
<%@taglib uri=”http://java.sun.com/jstl/core” prefix=”c”%>//引入标签库,设置前缀
<%@page contentType=”text/html;charset=gb2312”%>
<html>
<head><title>演示c:set标签</title></head>
<body>
<c:set var=”objInRequest” value=”abcStr” scope=”request” />
//相当于request.setAttribute(“objInRequest”,”abcStr”)
<c:out value=”${objInRequest}”/>
//在request中获取objInRequest属性,将其值输出到JspWriter
</body>
</html>
User.java //这是一个javabean对象的定义
package dev;
public class User{
public int id;
public String username;
public String password;
//public TYPE getter….
//public void setter….
}
//JSP页面
<%@taglib uri=”http://java.sun.com/jstl/core” prefix=”c”%>
<%@page contentType=”text/html;charset=gb2312”%>
<jsp:useBean id=”userHandle” class=”dev.User”/>
<html>
<head><title>演示c:set标签</title></head>
<body>
<c:set target=”${userHandle}” property=”id” value=”123”/>
<c:set target=”${userHandle}” property=”username” value=”lindeqiang”/>
<c:set target=”${userHandle}” property=”password”>
This is my password //注意,这里的password的value的值也可以赋值在<c:set的标签体中
//写成<c:set target=”${userhandle}” property=”password” value=”123456”/>也可以
</c:set>
ID:<c:out value=”${ userHandle .id}”/><br>
User:<c:out value=”${userHandle.username}”/><br>
PWD:<c:out value=”${userHandle.password}”/><br>
</body>
</html>
3.<c:out>标签
作用: 把对象的数值输出到JspWriter
属性:
属性说明
属性 类型 描述
value Object 计算的表达式
escapeXml Boolean 是否将转换成字符实体代码,默认为true
default Object D当value的对象不存在时(null),就输出这个default的值
分享到:
相关推荐
在Tomcat 10中,要使用JSTL,首先需要将jstl.jar和standard.jar添加到项目的lib目录下,或者将其配置在Tomcat的lib目录中以供全局使用。接着,在JSP页面中引入JSTL的标签库,通常通过以下方式: ```jsp ...
而Tomcat10则是为Java EE 8和Java EE 9规范设计的,尽管这两个版本的Tomcat在功能上有所增强,但它们都要求开发者正确配置JSTL依赖,以在JSP页面中使用JSTL标签。 在使用JSTL时,你需要确保添加了正确的JSTL和相应...
在Tomcat 5.5中使用JSTL1.1,你需要按照以下步骤操作: 1. 下载jstl-1.1.2.jar和standard1.1.2.jar这两个文件,并确保它们是官方发布的、未被篡改的版本。 2. 将这两个JAR包放入Tomcat的lib目录下。这是因为Tomcat...
本文将详细介绍JSTL在不同版本的web.xml中的配置,并结合实际使用案例进行解析。 ### 1. JSTL核心标签库 JSTL的核心标签库提供了一系列处理控制流程、输出数据、处理集合等任务的标签,如`<c:if>`、`<c:choose>`、...
在使用JSP(JavaServer Pages)与Tomcat7服务器进行开发时,有时会遇到提示JSTL(JavaServer Pages Standard Tag Library)错误的情况。JSTL是Java EE平台的一部分,它提供了一系列预定义的标签库,帮助开发者更方便...
这使得我们能够在JSP页面中使用如 `<c:forEach>`,`<fmt:formatDate>`等标签。 在Tomcat中配置JSTL,除了将JSTL的jar文件放入`lib`目录外,还需要确保在web应用程序的`WEB-INF/web.xml`中添加以下配置,以启用JSTL...
这篇博客主要探讨了JavaServer Pages Standard Tag Library (JSTL)在Tomcat应用服务器中的使用和配置,作者通过实例分享了如何将JSTL整合到Tomcat中以提高Web应用程序的开发效率。JSTL是一个用于JSP的标签库,它提供...
JSTL1.1包含两个部分standard.jar和jstl.jar 使用JSTL时tomcat5.5最好是使用jstl1.1。 使用jstl时如果出现java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
【JSTL标签配置流程详解】 JSTL(JavaServer Pages Standard Tag Library)是SUN公司推出的一种用于JSP开发的组件,旨在替代传统的JSP scriptlet代码...在实际项目中,合理使用JSTL可以极大地提高开发效率和代码质量。
**二、JSTL配置** 配置JSTL标签库通常涉及以下步骤: 1. **添加依赖**:将`jstl.jar`和`standard.jar`文件添加到项目的类路径中。如果是Maven项目,可以在`pom.xml`文件中添加对应的依赖项。 2. **引入JSTL库**:...
要在项目中使用JSTL,首先需要添加JSTL的JAR文件。这通常通过Maven或Gradle构建工具完成。在Maven的pom.xml文件中,添加以下依赖: ```xml <groupId>javax.servlet <artifactId>jstl <version>1.2 ``` 对于...
- EL 可以直接在 JSTL 标签中使用,例如 `${}` 语法。 7. **优点** - 提高代码可读性:JSTL 标签比 JSP 脚本更直观,便于理解。 - 分离关注点:JSTL 有助于实现 MVC 设计模式,将业务逻辑从视图层分离。 - 更少...
EL表达式可以直接在JSTL标签中使用,以提供更强大的功能。 ### 结语 JSTL标签库极大地简化了JSP页面的编写,使代码更易读,更易于维护。通过正确配置和使用JSTL,你可以创建出更高效、更结构化的Web应用程序。在...
而standard.jar文件通常与jstl.jar一起使用,因为它包含了JSTL运行所需的Apache Tomcat的Jasper EL(Expression Language)实现以及Servlet API。这是因为JSTL的一些功能依赖于Servlet API和JSP API,这些在standard...
在Java Web开发中,Tomcat是一个广泛使用的开源应用服务器,它负责处理Servlet和JSP(JavaServer Pages)等Web应用程序。在本主题中,我们关注的是两个关键的库文件:`standard.jar`和`jstl.jar`,它们是Tomcat运行...
总之,"Javaweb的tomcat配置以及使用视频教程"将全面介绍Tomcat的配置与使用,帮助初学者快速上手Java Web开发,同时也为有经验的开发者提供进一步学习和优化服务器配置的参考。通过实践和学习,你将能够熟练掌握...
然后可以在页面中使用`<c:forEach>`等标签进行循环操作。 **3. JSTL的底层实现** JSTL的底层实现基于Java的EL(Expression Language)和Servlet API。当JSP页面被请求时,JSP引擎会将JSTL标签转换为相应的Java代码...
- JSP可以通过`<jsp:include>`、`<jsp:forward>`等动作指令与Servlet协作,或者使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)进行更复杂的逻辑处理。 8. **其他配置**: - 可以...
在JSP页面中使用JSTL时,JSP容器会根据TLD来解析和执行相应的标签。 **JSTL与EL(Expression Language)**: JSTL通常与EL一起使用,EL是JavaServer Pages 2.0引入的一种轻量级表达式语言,用于访问JavaBean属性、...