我以前做过Java和JSP编程,但是对于Java Server Faces还很陌生。我想知道是否有一套JSF开发最佳实践。
考虑使用Facelets - 它极大地简化了JSF开发中最糟糕的部分。我现在正在进行一个基于CMS的JSF项目,没有使用Facelets(之前也曾使用过),感觉像失去了我的左臂一样……
我强烈建议您聘请一位有 JSF 经验的人来领导您的第一个 JSF 项目,即使这意味着支付承包商三个月的费用。JSF 方法与 JSP 非常不同。您解决问题的方式也非常不同。
考虑以下库:
采用 MVC ,你需要不仅知道这是什么,还要广泛使用。
有两种主要的将控制器与视图关联的模式
每个顶层页面都有一个请求范围的控制器(bean),该页面的所有验证和操作都使用此类。还用于过滤和排序模型。模型将存储在几个会话级控制器上,这些会话级控制器将处理与后端(EJB 或持久性层)的通信,这些会话控制器应实现业务逻辑,并不了解 JSF、HTML 或任何演示技术。
根据您的数据模型设计控制器,将它们嵌套在彼此之内。(此帖子变得太长了,我就不详细介绍了)。
每个人:
至少一人:
一些提示: 了解JSF请求生命周期以及您的各个代码片段在其中的位置。特别是要找出如果存在验证错误,为什么您的模型值将不会更新。
选择一个标签库,然后坚持使用它。花时间确定您的需求并原型化不同的库。混合使用不同的标签库可能会对您的心理健康造成严重伤害。
我还不知道关于跨字段/表单级别验证的“最佳实践”。
也就是说,JSF验证目前是针对单个字段验证的。在处理复杂的跨字段/表单级别验证时,它变得很丑陋。
虽然旧了但仍然看起来准确 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
我一直在使用IBM的JSF实现,并有一些评论。这不是一个坏的选择,但你必须致力于IBM的“生活方式”。他们编写了自己的标签库,扩展了JSF标准。如果你能够留在Rational Application Developer(RAD)中(它并不经常更新),那么集成有时会有些错误,但总体上还可以。此外,与WebSphere的集成相当不错。除非你的雇主和IBM打高尔夫球,否则最好尽可能保持原始状态。