weblogic8.X版本无法使用JSTL1.1

来源:互联网 发布:托福听力 知乎 编辑:程序博客网 时间:2024/05/02 16:29

从2001年接触jsp至今,已经6年多了。使用jsp也做过两个网站项目的开发,但做项目时因为进度催得急,没有时间去系统地学习jsp相关的开发知识。因为恰好因为要讲授jsp开发的课程,虽然只是简单的做四五个页面,但为了保险起见,还是硬着头皮,从sun的主站上下了jsp规范文件jsp-2_0-fr-spec.pdf(478页)。花了3个小时囫囵吞枣式的过了一遍,有了一些全局的概念。

jsp规范中主要描述的是,Directive(page, taglib)和Action等标签的定义,Expression language的语法(${expr}),嵌入java代码的写法(<%! %>, <% %>, <%=%>),jstl标签库的使用方法。为了更好的了解taglib的工作原理,准备实现一个自定义标签库。从apache上下了jstl1.1(jakarta-taglibs-standard-1.1.2.zip),放到weblogic8.1的WEB-INF/lib目录下,拷贝相应的tld文件到WEB-INF/的某个子目录中。编写一个测试jsp页面,结果报错:java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException。求助google,发现已经有前人发现并解决了这个问题,摘抄如下:

错误原因:weblogic8.X版本里用到JSTL1.1的项目,weblogic8.X不支持JSP2.0,因为jsp2.0中已经把ELException类包括进去了,而weblogic8.X里的是JSP1.2,JSTL1.1里也并没有这个包。
解决方法:
( 1 ) 下载jstl1.0,然后修改web.xml,这样一来换引起了一个附带问题:jstl1.0中没有fn:这个taglib,所有用到fn:的地方必须用jsp来重写。
( 2 ) 改用支持JSP2.0的服务器,tomcat5或weblogic9  

原创粉丝点击