<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC '-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/j2ee/dtds/web-app_2_3.dtd'>
<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">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
</web-app>
改正后web.xml中的内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<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">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<jsp-config>
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
总结
其实,taglib描述符,正确写法是放到<jsp-config></jsp-config>描述符中,如下所示
<jsp-config>
<taglib>
<taglib-uri>/cms4j</taglib-uri>
<taglib-location>/WEB-INF/tlds/cms4j.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/oscache</taglib-uri>
<taglib-location>/WEB-INF/tlds/oscache.tld</taglib-location>
</taglib>
</jsp-config>
同时发现在jbuilder中也会出现这种问题,解决方法同上.