`
zorro_zz
  • 浏览: 14668 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tomcat中的JSTL配置与使用

    博客分类:
  • Java
阅读更多

现在不怎么做前台开发,对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的值

分享到:
评论

相关推荐

    JSTL标签库-tomcat10-简化JSP中java代码

    在Tomcat 10中,要使用JSTL,首先需要将jstl.jar和standard.jar添加到项目的lib目录下,或者将其配置在Tomcat的lib目录中以供全局使用。接着,在JSP页面中引入JSTL的标签库,通常通过以下方式: ```jsp ...

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    而Tomcat10则是为Java EE 8和Java EE 9规范设计的,尽管这两个版本的Tomcat在功能上有所增强,但它们都要求开发者正确配置JSTL依赖,以在JSP页面中使用JSTL标签。 在使用JSTL时,你需要确保添加了正确的JSTL和相应...

    tomcat 5.5下使用JSTL所需JAR包

    在Tomcat 5.5中使用JSTL1.1,你需要按照以下步骤操作: 1. 下载jstl-1.1.2.jar和standard1.1.2.jar这两个文件,并确保它们是官方发布的、未被篡改的版本。 2. 将这两个JAR包放入Tomcat的lib目录下。这是因为Tomcat...

    jstl详细配置讲解

    本文将详细介绍JSTL在不同版本的web.xml中的配置,并结合实际使用案例进行解析。 ### 1. JSTL核心标签库 JSTL的核心标签库提供了一系列处理控制流程、输出数据、处理集合等任务的标签,如`&lt;c:if&gt;`、`&lt;c:choose&gt;`、...

    JSP Tomcat7 提示JSTL错误.zip_JSP Tomcat7 提示JSTL错误

    在使用JSP(JavaServer Pages)与Tomcat7服务器进行开发时,有时会遇到提示JSTL(JavaServer Pages Standard Tag Library)错误的情况。JSTL是Java EE平台的一部分,它提供了一系列预定义的标签库,帮助开发者更方便...

    tomcat jstl 相关的包 2022

    这使得我们能够在JSP页面中使用如 `&lt;c:forEach&gt;`,`&lt;fmt:formatDate&gt;`等标签。 在Tomcat中配置JSTL,除了将JSTL的jar文件放入`lib`目录外,还需要确保在web应用程序的`WEB-INF/web.xml`中添加以下配置,以启用JSTL...

    jstl tomcat

    这篇博客主要探讨了JavaServer Pages Standard Tag Library (JSTL)在Tomcat应用服务器中的使用和配置,作者通过实例分享了如何将JSTL整合到Tomcat中以提高Web应用程序的开发效率。JSTL是一个用于JSP的标签库,它提供...

    JSTL1.1(tomcat5使用)

    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标签配置流程详解】 JSTL(JavaServer Pages Standard Tag Library)是SUN公司推出的一种用于JSP开发的组件,旨在替代传统的JSP scriptlet代码...在实际项目中,合理使用JSTL可以极大地提高开发效率和代码质量。

    JSTL标签库下载配置

    **二、JSTL配置** 配置JSTL标签库通常涉及以下步骤: 1. **添加依赖**:将`jstl.jar`和`standard.jar`文件添加到项目的类路径中。如果是Maven项目,可以在`pom.xml`文件中添加对应的依赖项。 2. **引入JSTL库**:...

    JSTL使用配置

    要在项目中使用JSTL,首先需要添加JSTL的JAR文件。这通常通过Maven或Gradle构建工具完成。在Maven的pom.xml文件中,添加以下依赖: ```xml &lt;groupId&gt;javax.servlet &lt;artifactId&gt;jstl &lt;version&gt;1.2 ``` 对于...

    JSTL中文帮助文档

    - EL 可以直接在 JSTL 标签中使用,例如 `${}` 语法。 7. **优点** - 提高代码可读性:JSTL 标签比 JSP 脚本更直观,便于理解。 - 分离关注点:JSTL 有助于实现 MVC 设计模式,将业务逻辑从视图层分离。 - 更少...

    JSTL标签库下载和配置使用

    EL表达式可以直接在JSTL标签中使用,以提供更强大的功能。 ### 结语 JSTL标签库极大地简化了JSP页面的编写,使代码更易读,更易于维护。通过正确配置和使用JSTL,你可以创建出更高效、更结构化的Web应用程序。在...

    共两个jar包:jstl.jar和standard.jar

    而standard.jar文件通常与jstl.jar一起使用,因为它包含了JSTL运行所需的Apache Tomcat的Jasper EL(Expression Language)实现以及Servlet API。这是因为JSTL的一些功能依赖于Servlet API和JSP API,这些在standard...

    standard.jar和jstl.jar的下载

    在Java Web开发中,Tomcat是一个广泛使用的开源应用服务器,它负责处理Servlet和JSP(JavaServer Pages)等Web应用程序。在本主题中,我们关注的是两个关键的库文件:`standard.jar`和`jstl.jar`,它们是Tomcat运行...

    Javaweb的tomcat配置以及使用视频教程

    总之,"Javaweb的tomcat配置以及使用视频教程"将全面介绍Tomcat的配置与使用,帮助初学者快速上手Java Web开发,同时也为有经验的开发者提供进一步学习和优化服务器配置的参考。通过实践和学习,你将能够熟练掌握...

    jstl插件与底层源码

    然后可以在页面中使用`&lt;c:forEach&gt;`等标签进行循环操作。 **3. JSTL的底层实现** JSTL的底层实现基于Java的EL(Expression Language)和Servlet API。当JSP页面被请求时,JSP引擎会将JSTL标签转换为相应的Java代码...

    Tomcat jsp经典配置Tomcat jsp经典配置

    - JSP可以通过`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`等动作指令与Servlet协作,或者使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)进行更复杂的逻辑处理。 8. **其他配置**: - 可以...

    jstl的依赖包

    在JSP页面中使用JSTL时,JSP容器会根据TLD来解析和执行相应的标签。 **JSTL与EL(Expression Language)**: JSTL通常与EL一起使用,EL是JavaServer Pages 2.0引入的一种轻量级表达式语言,用于访问JavaBean属性、...

Global site tag (gtag.js) - Google Analytics