2011-08-26 73 views

回答

4

由于JSF API构建在JSP/Servlet API之上,所支持的最大JSF版本取决于最大支持的JSP/Servlet版本。

  • JSF 1.0和1.1需要最少的Servlet 2.4/JSP 2.0。

  • JSF 1.2适用于Servlet 2.4,但需要最少的JSP/EL 2.1与Servlet 2.5一起使用,所以它需要所有的Servlet 2.5。如果您将JSP 2.1替换为Facelets 1.x作为默认视图技术,那么您可以在Servlet 2.4上使用JSF 1.2。

  • 默认使用的JSF 2.0 Facelets 2.x需要最小的EL 2.1,它与Servlet 2.5一起使用,所以它需要所有的Servlet 2.5。如果您提供自己的EL 2.1 API/impl,那么理论上你可以在Servlet 2.4上运行JSF 2.0。

  • JSF 2.1需要至少Servlet 3.0 and Java 1.6 (6.0)

JBoss 4.x是一个Servlet 2.4容器。所以如果你坚持使用JSP,那么你可以最大限度地使用JSF 1.1。但是,如果您将Facelets 1.x替换为JSP,那么您可以使用JSF 1.2。 JSF 1.2提供的最重要的优势摆脱<f:verbatim>的可能性,使用<f:setPropertyActionListener>,使用@PostConstruct

JSF 2.0是在理论上可能,但我不保证它会工作100因为我没有完全意识到任何可能的副作用。到目前为止,我只能在Tomcat 5.5上以非常基本的测试页面成功运行ajax表单和视图范围的bean。它进入综合体时可能会失败。另见Running JSF 2.0 on Servlet 2.4 container

+0

非常感谢您的描述。 – angus

+0

不客气。既然你是新来的,请不要忘记标记接受的答案(大多数情况下)以解决问题:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-答案工作/ 5235#5235 – BalusC