【问题标题】:JSF 2 and JSP 2JSF 2 和 JSP 2
【发布时间】:2012-03-21 16:50:36
【问题描述】:

Tomcat 7.0.x 规范版本:

  • Servlet 3.0
  • JSP 2.2
  • EL 2.2。

Tomcat 6.0.x 规范版本:

  • Servlet 2.5
  • JSP 2.1

JSP 2.x 是否与 JSF (2.1) 相同?我可以在 Tomcat 6 中运行 JSF 2.1 Web 应用程序吗?

【问题讨论】:

标签: jsp jsf tomcat


【解决方案1】:

JSP 2.x != JSF 2.x 他们有不同的规范。

是的,您可以在 Tomcat 6 中运行 JSF 2.1 Web 应用程序,实际上您可以在任何 servlet 容器中运行 JSF。 当然,如果所选的 servlet 容器中还没有正确的 JSF 库,您还必须添加它。

如果您想使用像 <h:commandButton action="#{myBean.myAction(myParameter)}"/> 这样的 EL 表达式,您还必须确保 EL 2.2 API 和实现 JAR 可用。

【讨论】:

  • 谢谢!.. 但如果 JSP 和 JSF 是不同的东西,我认为在 tomcat 规范中添加 jsf 支持的版本会很有用。
  • @user1246780 TomcatJSF 无关。它只是一个servlet 容器。因此,没有理由在规范中提及这一点。从理论上讲,您应该能够将任何JSF 版本插入到任何servlet 容器
  • EL 2.2 不是运行 JSF 2.x 的要求。
  • @BalusC 对,但是如果你想使用像<h:commandButton action="#{myBean.myAction(myParameter)}"/> 这样的EL 表达式,你需要EL 2.2 对吗?
  • 这又是正确的。但这并不是让 JSF 2.x 运行所必需的。
【解决方案2】:

您不能直接在 Tomcat 6 中运行 JSF 2.1 Web 应用程序,因为 Tomcat 仅实现 Servlet 和 JSP。

为了在 Tomcat 上运行 JSF 应用程序,您需要添加 JSF 实现(例如 Mojarra),如果您想使用 Tomcat 6,则需要添加较新的 EL jar(请参阅例如 http://javaevangelist.blogspot.com/2011/05/jsf-21x-on-tomcat-60.html)。

然而,使用已经包含 JSF 的服务器会更容易(例如,其他人已经经历了组装这些东西的麻烦)。如果您是 Tomcat 粉丝,TomEE 可能适合您。它是 Tomcat,其中已经添加了 JSF。它只比 Tomcat 大一点,实际上可以作为开箱即用的全栈解决方案使用。

【讨论】:

    【解决方案3】:

    如果你想拥有多合一、JSF 2.x、JSP 2.x 和许多其他用于 java web 开发的东西,你可以使用 JBOSS 应用程序服务器,它提供了所有这些东西,而你不需要不得不担心。

    查看 JBOSS (8) 的最新版本,名为 The WildFly:

    http://wildfly.org/downloads/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-31
      • 2011-11-24
      • 2012-07-03
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多