今天在jsp中使用jstl標籤庫的時候,出現了一個很噁心的問題,我記得自己幾年前在學校學這門課的時候,沒遇到過這種問題的啊,現在突然出現,確實噁心了我一把。
一般稍不小心就會出現下面的錯誤:
the absolute uri:http://java.sun.com/jstl/core cannot be resolved.一個例子如:http://stackoverflow.com/questions/4928271/jstl-1-2-the-absolute-uri-http-java-sun-com-jstl-core-cannot-be-resolved
解決辦法:
如果你的項目是使用Maven進行管理的話,那麼很好辦,只需要在pom.xml檔案中添加:
<dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
然後在你相應的jsp檔案中添加:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
就ok了。
當然如果你的項目沒有使用maven進行管理的話,可以手動添加支援。具體的做法是:
首先去http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 下載標準標籤庫的發行檔案。
為了在 JSP 中使用 Java 標準標籤庫,需要:
1. 將 TLD 檔案拷貝到 WEB-INF/tld
2. 將 JAR 檔案拷貝到 WEB-INF/lib
一個簡單的執行個體如下:
<%@ page language="java" contentType="text/html;charset=UTF-8" %><%@ taglib uri="/WEB-INF/tld/c-rt.tld" prefix="c-rt" %><html><head><title>Java Code Geeks Snippets - Simple JSTL in JSP Page</title></head><body><c-rt:if test='<%= request.getParameter("myparam") != null %>'> <%= request.getParameter("myparam") %></c-rt:if></body></html>
大家要注意的是上面範例程式碼的這一行:
<%@ taglib uri="/WEB-INF/tld/c-rt.tld" prefix="c-rt" %>