我所遇到的问题: 关键字: 关于web.xml中不能识别<taglib>的问题 关于eclips中不能识别<taglib>的问题 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
myeclips5的标签使用,再web.xnl中不用声明<taglib>标签就可以直接使用标签,这好像是2.4版本的特点。 但是,再jsp页面中 必须加上:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>, 如果不加,标签被忽视,显示空白。 如果写为:<%@ taglib uri="http://java.sun.com/jsf/core" prefix="c"%>,则是会报错!!!!! 这是为什么呢? 原因是这样的的!!! 如果使用标签,jstl.jar+standard.jar应该放到工程的lib目录下。 解压缩standard.jar然后到里面的META-INF里面找到标签描述文件(很多.tld文件),然后打开tld文件,看看里面不同的uri就可以了。 我解开c.tld,看到这句话<uri>http://java.sun.com/jsp/jstl/core</uri>,这就是原因!!!!! 总之: 完全可以: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 不可以: <%@ taglib uri="http://java.sun.com/jsf/core" prefix="c"%>
myeclips是没有再web.xml中自动添加<taglib>标签的,这不是myeclips的bug,可见myecips还是很聪明的,我们要相信它。 如果*.tld文件不在WEB-INF下,就需要写了,格式为: <jsp-config> <taglib> <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri> <taglib-location>token</taglib-location> </taglib> </jsp-config> 模板如下: =========================index.jsp============================= <%@ page language="java" pageEncoding="GB18030"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSF 'index.jsp' starting page</title> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <c:forEach var="i" begin="1" end="30" step="1"> <c:out value="${i}" /> <br /> </c:forEach> </body> </html> =========================web.xml============================= <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" 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"> </web-app>
------------------------------------------------------------- 我写了一个自定义的标记库,在web.xml中要写一段<taglib>……</taglib>。 语法和格式都是正确的,在Tomcat中运行都正常,我是用MyEclipse来开发的,其实web.xml可以有taglib这个元素的,但是MyEclipse不认识……总是有个红色的叉子看着很不爽啊,怎么解决这个问题呢? 响应者 1: 你的jar包没有被加载进来,你把报的什么错贴出来 响应者 2: 你加载的是什么WEB.xml,头是不是这种的??? <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" 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"> 响应者 3: 是的话,要加载标签库是这样的 <jsp-config> <taglib> <taglib-uri>XXXXX</taglib-uri> <taglib-location>XXXXXXX</taglib-location> </taglib> </jsp-config> 响应者 4: 谢谢Asclepios() -------------------------------------------------------------------------------------------------------------------------- 在tomcat中配置自定义标签的时候,会遇到一个问题 web.xml中,有两个版本的DTD认证,一个是java1.2版本的,一个是2.0版本的,所以就形成了不同版本的时候作出的配置不一样 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd 是2.0版本的 所以在web.xml中添加自己的taglib的时候要包含在<jsp-config></jsp-config>中间才行. <jsp-config> <taglib> <taglib-uri>/date</taglib-uri> <taglib-location>/WEB-INF/date.tld</taglib-location> </taglib> </jsp-config --------------------------------------------------------------------------------------------------------------------------- <jsp-config>标签使用详解 <jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素。
其中<taglib>元素在JSP 1.2时就已经存在;而<jsp-property-group>是JSP 2.0 新增的元素。 <jsp-property-group>元素主要有八个子元素,它们分别为:
1.<description>:设定的说明; 2.<display-name>:设定名称; 3.<url-pattern>:设定值所影响的范围,如:/CH2 或 /*.jsp; 4.<el-ignored>:若为true,表示不支持EL 语法; 5.<scripting-invalid>:若为true,表示不支持<% scripting %>语法; 6.<page-encoding>:设定JSP 网页的编码; 7.<include-prelude>:设置JSP 网页的抬头,扩展名为.jspf; 8.<include-coda>:设置JSP 网页的结尾,扩展名为.jspf。 一个简单的<jsp-config>元素完整配置: <jsp-config> <taglib> <taglib-uri>Taglib</taglib-uri> <taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location> </taglib> <jsp-property-group> <description>Special property group for JSP Configuration JSP example.</description> <display-name>JSPConfiguration</display-name> <url-pattern>/jsp/* </url-pattern> <el-ignored>true</el-ignored> <page-encoding>GB2312</page-encoding> <scripting-invalid>true</scripting-invalid> <include-prelude>/include/prelude.jspf</include-prelude> <include-coda>/include/coda.jspf</include-coda> </jsp-property-group> </jsp-config> --------------------------------------------------------------------------------------------------------------------------- |
转自:http://hi.baidu.com/dburu/blog/item/d6484daf537cd2fbfbed50da.html
http://hi.baidu.com/jxliaom/blog/item/97445e2f07f89a3c1e308955.html