java.lang.NoClassDefFoundError: javax/el/

 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的需要加上此句纔可以避免在頁面上輸出${}。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章