JSTL 库安装使用(jstl 1.1系列和jstl 1.2系列)

JSTL全名为JavaServer Pages Standard Tag Library,目前最新的版本为 1.2.5 版。JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性、维护性和方便性。

jstl1.1系列(以1.1.2为列)

Tomcat安装JSTL 库步骤如下:
从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。

  1. 官方下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
  2. 本站下载地址:jakarta-taglibs-standard-1.1.2.zip
  3. mvnrepository下载地址:https://mvnrepository.com/artifact/javax.servlet/jstl
  4. Java2s下载地址:http://www.java2s.com/Code/Jar/j/Downloadjstljar.htm

下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 文件拷贝到 /WEB-INF/lib/ 下,或者通过软件(例:intellij idea)导入,导入方式如下。
点击顺序:File--->Project Structure--->Module--->Dependencies--->+
intellij ieda导包
将 tld 下的需要引入的 tld 文件复制到 WEB-INF 目录下,如下所示,然后就可以开始使用。
tld文件

使用方式一:
在图中所示位置添加
<%@ taglib uri="WEB-INF/c.tld" prefix="c"%>,即可以使用<c:out>标签,其余tld文件同理。jsp中jstl的使用
使用方式二:
首先在 web.xml 文件中添加以下配置:

<jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
    </taglib>
    </jsp-config>

然后在每个 JSP 文件中的头部包含<taglib>标签,如引用核心标签库的语法如下,其余同理。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

jstl1.2系列(以1.2.5为列)

JSTL 1.2.5 必须在支持 Servlet 2.5, JavaServer Pages 2.1 以上版本的JavaWeb容器才可使用。和jstl1.1系列一样,首先在 WEB-INF/lib 下加入如下jar包或者通过工具直接导入(1.1系列已讲):

taglibs-standard-compat-1.2.5.jar
taglibs-standard-impl-1.2.5.jar
taglibs-standard-jstlel-1.2.5.jar
taglibs-standard-spec-1.2.5.jar

在这里如果涉及到XML标记库依赖项的话,需要Apache Xalan 2.7.1或更高版本。

Apache Xalan 2.7.1

同时为解决XSLT处理的性能问题,此版本依赖于Apache Xalan实现特定的功能。下列库应该包含在应用程序的类路径中:

xalan-2.7.1.jar
serializer-2.7.1.jar

但是如果你不使用JSTL 1.0标签,那么“taglibs-standard-jstlel”JAR可以省略。如果您不使用XML库,那么Apache Xalan依赖项也可以省略;如果使用Maven构建应用程序,请将以下依赖项添加到你的pom.xml文件:

 <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-spec</artifactId>
      <version>1.2.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-impl</artifactId>
      <version>1.2.5</version>
  </dependency>

最后在开发的jsp页面中选择如下所需的标签即可。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="xml"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

遇到的问题及解决办法:

  • 问题一<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>报错。

用eclipse,myeclipse,intellij idea等开发工具写jsp时如下代码报错

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/sql” prefix=“sql”%>

解决办法:缺少包,如下:
jstl 1.0系列为jstl.jar和 standard.jar; 1.2系列为taglibs-standard-impl-1.2.5.jar,taglibs-standard-spec-1.2.5.jar

可以通过tomcat\webapps\examples\WEB-INF\lib目录下找到两个jar包, 然后把这两个包复制粘贴到tomcat的lib目录下或项目的lib目录下即可。
在这里插入图片描述

  • 问题二org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved,此问题发生前使用了JSTL 1.2 。

解决办法:该URI适用于JSTL 1.0,但您实际上使用的是JSTL 1.2,它使用带有附加/ jsp路径的URI(因为发明EL表达式的JSTL自从1.1版本集成为JSP的一部分以便共享或重用EL)普通JSP中的逻辑也是如此。因此,请相应地修复taglib的URI为:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

如果使用maven依赖的话,对应的修改POM为:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

猜你喜欢

转载自blog.csdn.net/qq_27637361/article/details/88778917