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