JSTL http://java.sun.com/jsp/jstl/core

关于JSP中org.apache.jasper.JasperException:

       This absolute uri http://java.sun.com/jsp/jstl/core ) cannot be resolved in either web.xml or the jar files deployed with this application

       照着《精通JSP--Web开发技术与典型应用》敲了一段JSTL的代码。没想到报错了。为这个问题搞了一下午,坐得屁股疼……

       我的开发环境是Eclipse 3.2.0、Myeclipse 5.0、Tomcat 5.0.28(它用的是JRE1.4)和JDK1.5

       从网上搜了一下,相同的说法是:一个就是JSTL的版本问题(1.0与1.1),是否不一致。 还有就是检查虚拟目录下WEB-INF目录下的lib文件夹(如果同有lib文件夹,后动创建一个)中是否有jstl.jar和standard.jar两个jar包 ,如果没有则把它们复制到lib下面。

       都试了,不过报错依旧……后来又找了一下加上自己的乱搞,按照上面的改过之后,大体有两种解决方法:

       第一种就是在Eclipse的工程中导入JSTL1.1后,下载JSTL1.1  http://jakarta.apache.org/taglibs/index.html
然后解压,把*.jar和*.tld放到/WEB-INF/lib目录下。也就是将 所有的jakarta-taglibs-standard-current.zip(JSTL的类库)中的.jar和.tlb放到WEB-INF目录下的 lib文件夹中,JSP文件中导入<%@ taglib prefix="c" uri="/WEB-INF/lib/c.tld" %>, 经试验是可以的。

       第二种是修改web.xml,加上下面的语句:

<jsp-config>

   <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/xml</taglib-uri>

    <taglib-location>/WEB-INF/x.tld</taglib-location>

   </taglib>

   <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/sql</taglib-uri>

    <taglib-location>/WEB-INF/sql.tld</taglib-location>

   </taglib>

</jsp-config>

 

       JSP中导入<%@ taglib prefix="c" uri=" http://java.sun.com/jsp/jstl/core " %>。 应该就可以了……

推荐第二种^_^!

 

转摘者注:我采用第一种解决问题也很方便

在使用 JSTLJSP 标准标签库)时,开发者可能会遇到核心标签库 URI `http://java.sun.com/jsp/jstl/core` 无法正常工作的问题。这种情况通常与依赖配置、版本兼容性或部署描述符设置有关。 首先,确保项目中已正确引入 JSTL 的相关依赖。对于基于 Maven 的项目,应在 `pom.xml` 中添加以下依赖以包含 JSTL 核心库: ```xml <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ``` 此外,某些旧版本的 JSTL 可能需要额外的标准标签库支持,例如 `taglibs-standard-impl` 和 `taglibs-standard-jsp`,这些可以通过如下依赖引入: ```xml <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> ``` 如果使用的是较新的 Tomcat 版本(如 9.x 或以上),还需注意 JSP API 的版本是否匹配。可以在 `pom.xml` 中指定合适的 JSP API 依赖: ```xml <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.3</version> <scope>provided</scope> </dependency> ``` 其次,在 `web.xml` 文件中应正确定义标签库的位置。一个典型的配置示例如下: ```xml <taglib> <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> <taglib-location>/WEB-INF/tld/c.tld</taglib-location> </taglib> ``` 如果仍然无法访问 JSTL 核心标签库的 URI,可能是由于服务器缓存或工作目录权限问题导致的 404 错误。此时可以尝试清除 Tomcat 的工作目录 `/usr/local/tomcat/work`,并确保该目录及其内容的权限设置允许 Tomcat 用户读写访问[^3]。 最后,在 JSP 页面中引用 JSTL 核心标签库时,应使用正确的 URI 并声明标签前缀,例如: ```jsp <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> ``` 通过上述配置步骤,大多数关于 JSTL 核心标签库 URI 无法访问的问题都可以得到解决。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值