JSF的最佳实践是什么?

时间:2008-08-28 09:47:18

标签: java jsf

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

8 个答案:

答案 0 :(得分:12)

考虑使用facelets - 它极大地简化了JSF开发的最糟糕部分。我正在做一个基于CMS的JSF项目,现在没有facelets(在用它做项目之后),感觉就像我的左臂缺失了....

答案 1 :(得分:12)

我强烈建议让具有JSF经验的人领导您在JSF的第一个项目,即使这意味着向承包商付款3个月。 JSF方法与JSP非常不同。你接近和解决问题的方式是非常不同的。

图书馆

考虑以下库:

建筑

拥抱MVC你不仅要知道这意味着什么,还要广泛使用它。

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

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

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

控制器是会话级

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

需要知识

每个人:

至少一个人:

  • Creating Custom Components
  • JSF的限制(后退按钮, 随机导航等)
  • 第3次调试 党的图书馆(至少一个人 必须舒适地爆发 调试器和踩到 JSF的实现(最简单的用 像开源实现一样 MyFaces的))

答案 2 :(得分:11)

一些提示: 理解JSF请求lifecycle以及您的各种代码所在的位置。特别要找出为什么如果存在验证错误,您的模型值将不会更新。

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

答案 3 :(得分:1)

  • 添加我对facelets的投票。我最近升级了一个使用facelets的项目,它解决了jsf的一些重大问题,特别为你提供了一个开箱即用的模板系统,让你在适当的时候使用标准的html,而不是“逐字”包装它标签都有效。
  • RestFaces是许多人抱怨的get / post问题的解决方案。它也有很好的文档记录和易于使用。
  • 不要使用许多taglib。升级时,这会使工作变得更加困难。
  • SEAM收集了许多JSF最佳实践,但我还没有使用它,所以我不能真正推荐它,只是建议你去看看它。

答案 4 :(得分:0)

我一直在使用JSf的IBM实现并且有一些评论。这不是一个糟糕的方式,但你必须承诺IBM的“生活方式”。他们编写了自己的标记lib,扩展了JSF标准。如果你可以设法留在Rational Application Developer(RAD)(经常没有得到更新),那么集成有时会出错,但整体还是不错的。此外,与WebSphere的集成非常好。除非你的雇主和IBM一起打高尔夫,否则我认为最好尽可能保持与香草的关系。

答案 5 :(得分:0)

我还不知道跨领域/表单级别验证的“最佳实践”。

也就是说,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

答案 6 :(得分:0)

您可以在以下链接中找到您可以找到有趣文章的链接

http://www.jsftutorials.net/

答案 7 :(得分:-1)

选择一个好的组件库。不要使用richfaces,我建议你不要使用jsf,在休息架构中使用spring mvc,jquery来自view和json。但如果必须,使用primefaces它易于使用,并有足够的组件。