【问题标题】:Facelets without JSF没有 JSF 的 Facelets
【发布时间】:2012-07-19 03:00:03
【问题描述】:

我正在学习 Java 语言并希望编写非常小的 Web 应用程序,因为 Facelets 似乎是 JSP 的替代品,而 JSF 对于小型 Web 应用程序来说似乎有点过头了,我可以只学习 Facelets 并在没有整个 JSF 堆栈?还是我应该只为这个小型网络应用程序使用 JSP?

【问题讨论】:

  • 您想阅读thisthis 的问题吗?
  • 我读过这些,但他们并没有真正说明 facelets 是否可以用作独立技术。

标签: java jsp jsf servlets facelets


【解决方案1】:

可以在没有 JSF 的情况下使用。只需将FacesServlet 映射到web.xml*.xhtml 的URL 模式,然后 声明

xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"

在任何 Facelet 模板中。声明它们实际上并没有什么害处,但这样你就不会“意外”使用它们。您也可以在其中编写纯 HTML 并将表单提交到纯 servlet 并将 servlet 转发/重定向到 Facelet。

您只需要记住,使用 servlet 您最终会得到更多样板代码,用于收集请求参数、转换/验证它们、维护和更新模型值、调用业务操作,而所有这些重复样板代码完全有价值的 JSF 托管 bean 不需要代码。

此外,您不能将 Facelets 与基于请求的 MVC 框架一起使用,这些框架只有 JSP 标签库可用,如 Struts、Spring MVC 等。

【讨论】:

  • 好吧,你还需要整个 jsf jar,不是吗?此外,当不使用 f: 和 h: 时,开发人员可以使用哪些模板选项?例如,ui 不被视为 jsf 的一部分吗?
  • 你为什么说不要只声明 xmlns:f 和 :h?如果不在 facelets 页面中使用这些标签,你能做什么?那么只有el可用?
  • 不,我的意思是你为什么不说“不要声明 ui:”?为什么说不声明 f: 和 h: only?
【解决方案2】:

Facelets 是为 JSF 的需要而开发的,因此依赖于 JSF。如果您需要 JSP 模板,只需使用 或更高级的库作为 Apache Tiles

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-19
    • 2011-02-10
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2016-10-30
    相关资源
    最近更新 更多