据我所知,JSF 2 需要 servlet 2.5,因此它不能在 JBOSS 4.05 (Tomcat 5.5) 上运行。不幸的是,我必须在该环境中部署一个使用 JSF 2.0 和 Primefaces 的应用程序。
有什么黑客可以使用它吗?
JSF 2.0 很大程度上依赖于EL 2.1 http://download.oracle.com/javaee/6/api/javax/el/package-summary.html它是 Servlet 2.5 的一部分,相对于 Servlet 2.5 来说是一个重大变化EL 2.0 http://download.oracle.com/javaee/6/api/javax/servlet/jsp/el/package-summary.html它是 Servlet 2.4 的一部分,但它不依赖于任何特定的 Servlet 2.5 特定 API。 Servlet 2.4 应该也能正常工作。因此,理论上,如果您提供自己的 EL 2.1 API 和实现,则可以让 JSF 2.0 在 Servlet 2.4 上工作/WEB-INF/lib
。我在 Tomcat 5.5.33 上使用以下库进行了快速测试/WEB-INF/lib
:
-
el-api.jar
文件复制自lib
的文件夹汤姆猫6.0.x http://tomcat.apache.org/download-60.cgi
-
jboss-el.jar https://maven.atlassian.com/content/repositories/jboss-releases/org/jboss/seam/jboss-el/2.0.0.GA/jboss-el-2.0.0.GA.jar文件(实现 EL 2.1 并支持 EL 2.2,类似于带参数的方法调用)
-
jsf-api.jar
and jsf-impl.jar
from 莫贾拉 2.0.x http://javaserverfaces.java.net/download.html
和 Servlet 2.4web.xml
其中声明了 JBoss EL:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>
一个简单的 JSF 2.0 Facelet(不是 JSP!),带有简单的<h:form>
带有一个按钮<f:ajax>
和一个简单的@ViewScoped
@ManagedBean
我在 Tomcat 5.5.33 上工作。在 JBoss 4.0.5 上尝试一下并彻底测试它。
请注意,您至少需要 JDK 1.5,而不是 JDK 1.4。另请注意,由于 Servlet 2.5 特定的存在,您的应用程序无法以这种方式移植到任何 Servlet 3.0 容器el-api.jar
file.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)