JSF的最佳实践是什么?

11

我以前做过Java和JSP编程,但是对于Java Server Faces还很陌生。我想知道是否有一套JSF开发最佳实践。

8个回答

12

考虑使用Facelets - 它极大地简化了JSF开发中最糟糕的部分。我现在正在进行一个基于CMS的JSF项目,没有使用Facelets(之前也曾使用过),感觉像失去了我的左臂一样……


4
我同意。没有Facelets的JSF感觉就是有缺陷的。 - Damo

12

我强烈建议您聘请一位有 JSF 经验的人来领导您的第一个 JSF 项目,即使这意味着支付承包商三个月的费用。JSF 方法与 JSP 非常不同。您解决问题的方式也非常不同。

考虑以下库:

架构

采用 MVC ,你需要不仅知道这是什么,还要广泛使用。

有两种主要的将控制器与视图关联的模式

Dot Net 风格,每个视图一个请求控制器

每个顶层页面都有一个请求范围的控制器(bean),该页面的所有验证和操作都使用此类。还用于过滤和排序模型。模型将存储在几个会话级控制器上,这些会话级控制器将处理与后端(EJB 或持久性层)的通信,这些会话控制器应实现业务逻辑,并不了解 JSF、HTML 或任何演示技术。

控制器是会话级别的

根据您的数据模型设计控制器,将它们嵌套在彼此之内。(此帖子变得太长了,我就不详细介绍了)。

所需知识

每个人:

  • h: 和 f: 中的标签
  • 至少一人:

    • 创建自定义组件
    • JSF 的限制(返回按钮、随机导航等)
    • 调试第三方库(必须有至少一人熟悉使用调试器并进入 JSF 实现的过程中(最简单的方式是使用像 MyFaces 这样的开源实现))

    11

    一些提示: 了解JSF请求生命周期以及您的各个代码片段在其中的位置。特别是要找出如果存在验证错误,为什么您的模型值将不会更新。

    选择一个标签库,然后坚持使用它。花时间确定您的需求并原型化不同的库。混合使用不同的标签库可能会对您的心理健康造成严重伤害。


    1
    • 我支持使用facelets。我最近将一个项目升级到使用facelets,它解决了一些JSF的大问题,特别是在开箱即用的情况下提供了一个不错的模板系统,并且让您在适当的时候使用标准HTML,而无需将其包装在“verbatim”标记中。
    • RestFaces是解决许多人抱怨的get/post问题的解决方案。它也有很好的文档和易于使用的特点。
    • 不要使用太多的taglibs。在升级时会使工作变得更加困难。
    • SEAM收集了许多JSF最佳实践,但我还没有使用过,所以我不能真正推荐它,只能建议您去看看。

    0

    0

    我一直在使用IBM的JSF实现,并有一些评论。这不是一个坏的选择,但你必须致力于IBM的“生活方式”。他们编写了自己的标签库,扩展了JSF标准。如果你能够留在Rational Application Developer(RAD)中(它并不经常更新),那么集成有时会有些错误,但总体上还可以。此外,与WebSphere的集成相当不错。除非你的雇主和IBM打高尔夫球,否则最好尽可能保持原始状态。


    0

    -1
    选择一个好的组件库。不要使用richfaces,我建议你不要使用jsf,而是使用spring mvc、jquery作为视图和rest架构中的json。但如果必须使用,可以使用primefaces,它易于使用且具有足够的组件。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接