-----------转帖开始----------
本文由 牛仔 发表在: 骑蚂蚁上火星
[转]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
如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。