关于JSTL一些需要说明的

  一直认为与.NET相比,JAVA最大的问题在于不统一,当然这可能是自由的代价,正如某某某一样,造成的结果是需要记各种各样的版本,有jsp的、servlet的、各种框架的、各种容器的,不一而足。今天要说的是JSTL。关于JSTL的版本问题本来一直认为这不是问题,但是今天在部署的时候恰恰成了问题。中午刚刚做完一个小程序,往服务器上一发布,直接来了一堆错误,如下:

HTTP Status 500 - javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/taglibs/standard/tag/rt/core/SetTag

  看到这个错误,我只能得出是标签库引起的,赶紧查查有没有哈,紧接着就上部署网站的“WEB-INF\lib”去找,看有没有JSTL包:

taglibs-standard-impl-1.2.5.jar(实现)
taglibs-standard-spec-1.2.5.jar (规范)

以前版本是:

jstl.jar

standard.jar

 一看还真有,那是?想不出来,最后没办法,但是基本上可以断定是版本问题,没办法,从零开始:

1)将TOMCAT下的web.xml文件拷贝出来,获取头文件定义:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

以前的是:

<!-- <web-app 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" -->
<!--     version="2.4"> -->

继续加入web.xml中加入JSTL配置:

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

重启TOMCAT,OK,搞定。

网上还有其他网友也遇到了类似的问题,感兴趣的可以一起看看:

http://oldbig.iteye.com/blog/2240432

http://blog.sina.com.cn/s/blog_6f3ef5c20101ar86.html

转载请注明出处:http://www.cnblogs.com/yuanyee
原文地址:https://www.cnblogs.com/yuanyee/p/6129586.html