java.lang.NoClassDefFoundError: javax/el/ExpressionFactory异常

-----------转帖开始----------

本文由   牛仔   发表在: 骑蚂蚁上火星
 
[转]java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
tomcat5.5.17+jstl1.2+servlet2.5+jsp2.1配置

    在此我使用的环境是:
    tomcat5.5.17
    jstl1.2
    servlet2.5
    struts1.2+spring2.0+hibernate3.1

 

    如果你按照以上目录发布工程,抛出以下异常:
    (1)  java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
    (2)  或打开页面后显示:
    HTTP Status 404 - /hello1/type Status report
    message /hello1/
    descriptiThe requested resource (/hello1/) is not available.
    Apache Tomcat/5.5.17

    则将javaee.jar包再copy一份放在tomcat目录的common\lib下就不会了。
    关于用到的javaee.jar、jsf-api.jar、jsf-impl.jar、jstl-1.2.jar这四个包可以通过myeclipse中获得,如果你安装了myeclipse5.5的话,我安装的是MyEclipse 5.5.1 GA,这四个包的所在的目录是:MyEclipse 5.5.1 GA\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_5.5.1\data\libraryset\EE_5

 

-----------转帖结束----------

 

    按以上所述完成后,出现的新问题是,运行的页面里把${}都给输出了,why?

找到的解决办法:

-----------转帖开始----------


问题:
    有些时候在使用JSP EL表达式时,直接用${param}时,在页面输出的是${param},而用<c:out value="${param}" />也不能正常显示?

 

原因与解决方法:
    可能是与JSTL冲突了,如在页首加入了
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core divfix="c" %>

1、当你的页面没有使用这些标准标志库中的操作时,将上面的语句删掉,即不要包含JSTL的信息,就可以正常输出 ${param}

2、在页首加入
    <%@ page isELIgnored="false" %>

    就可以同时使用JSP 2.0 EL与JSTL了

-----------转帖结束----------
    上面是转帖。

    经过测试,发现:tomcat6不用 加入<%@ page isELIgnored="false" %> 即可正常工作,

但是tomcat5.5的需要加上此句才可以避免在页面上输出${}。

本文地址:http://blog.csdn.net/wbchn/archive/2008/10/24/3137092.aspx


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。