JSF的最佳做法是什么?

时间:2020-03-05 18:44:18  来源:igfitidea点击:

我过去曾经做过Java和JSP编程,但是我是Java Server Faces的新手,并且想知道JSF开发是否有一套最佳实践。

解决方案

回答

一些技巧:
了解JSF请求生命周期以及各种代码在其中的适合位置。尤其要弄清楚如果存在验证错误,为什么不会更新模型值。

选择一个标签库,然后坚持使用它。花点时间确定需求并为不同的库创建原型。混合使用不同的标签库可能会严重损害心理健康。

回答

考虑使用facelets它极大地简化了JSF开发的最糟糕的部分。我现在正在做一个无表情的基于CMS的JSF项目(使用它完成一个项目之后),感觉好像我的左臂丢失了。

回答

我强烈建议让有JSF经验的人来领导我们在JSF中的第一个项目,即使这意味着要向承包商支付3个月的费用。
JSF方法与JSP非常不同。解决和解决问题的方式非常不同。

图书馆

考虑以下库:

  • RichFaces
  • 页岩
  • 特立尼达
  • 春天

建筑学

拥抱MVC,我们不仅需要了解这意味着什么,还需要广泛地使用它。

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

点网样式,每个视图一个请求控制器

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

控制器是会话级别的

根据数据模型设计控制器,将它们彼此嵌套。 (这篇文章太长了,所以我不会深入探讨这些内容)。

所需知识

每个人:

  • 生命周期
  • 多媒体数据中心
  • 基于组件的开发
  • h:和f:中的标签

至少一个人:

  • 创建自定义组件
  • JSF的局限性(后退按钮,随机导航等)
  • 调试第三方库(至少一个人必须熟悉调试器并逐步进入JSF的实现(最简单的方法是使用MyFaces这样的开源实现))

回答

我一直在使用JSf的IBM实现,并且有一些评论。这不是一个坏方法,但是我们必须致力于IBM的"生活方式"。他们编写了自己的标记库lib,该标记库扩展了JSF标准。如果我们可以保留在Rational Application Developer(RAD)内(它不会经常更新),那么该集成有时会出现问题,但总体来说还不错。而且与WebSphere的集成非常好。除非雇主与IBM打高尔夫球,否则我认为最好保持低调。

回答

我还没有跨域/表单级别验证的"最佳实践"。

也就是说,JSF验证当前面向单字段验证。当我们查看复杂的跨字段/表单级别验证时,IMO变得很难看。

老了,但对我来说仍然很老
http://weblogs.java.net/blog/johnreynolds/archive/2004/07/improve_jsf_by_1.html

http://www.jroller.com/robwilliams/entry/jsf_multi_field_validation_not

回答

  • 添加我对facelets的投票。我最近升级了一个使用facelets的项目,它解决了jsf的一些大问题,特别是为我们提供了一个开箱即用的体面的模板系统,并让我们在合适的情况下使用标准的html,而无需将其包装在" verbatim"中标签。
  • RestFaces是许多人抱怨的获取/发布问题的解决方案。它也有据可查且易于使用。
  • 不要使用太多的标签库。升级时,这会使工作变得更加困难。
  • SEAM收集了许多JSF最佳实践,但是我还没有使用过,所以我不能真正推荐它,只是推荐我们看看它。