BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Spring Web Flow增强JSF导航和状态

| 作者 Scott Delap 关注 0 他的粉丝 ,译者 胡键 关注 0 他的粉丝 发布于 2007年4月27日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。
长期以来,对Java Server Faces的导航支持的抱怨就没有停止过。去年秋天,Ignacio Coloma在博客中记录了他的沮丧
……入门确实简单:组件/表现器(renderer)/验证器/转换器模型非常清晰,并且很容易上手和运行。验证模型工作起来就像是魔法,JSP页面非常小,你可以立马得到一个可工作的应用骨架。接着将页面链接起来,于是地狱开始了……

上周,著名Web应用开发者Matt Raible在他的博客中关于JSF有类似的评论

……如果你准备开始使用JSF,我强烈推荐Facelets或Shale/Seam……Shale和Facelets有2个问题——这些项目的活跃程度很低。Shale的创建者们还在守护着它,因此即使它很少被使用,你仍然可能得到你问题的答案。然而,Facelets似乎正遭受着“被开发者遗弃”的惨境。

结论:不要因为JSF是“标准”就简单地去使用它。要使用其它开发更活跃,并且专为Web而设计的框架。就基于组件的框架来说,最流行的是Tapestry和Wicket, RIFE和Click次之。如果你仍然想用JSF,你可能应该使用Seam,但是,不要因为JSF是“标准”就简单地使用它。

几家公司正积极地着手于修改和增强JSF,然而使用的是基于JSF的JBoss SeamSpring Web Flow提供的对JSF的支持。最近,来自Interface21的Keith Donald的Spring Web Flow与JSF集成详解提供了一个实现导航逻辑和管理应用程序状态的更好模型:

    作为JSF的扩展,Spring Web Flow负责导航规则和管理与用户交互相关联的状态(亦称会话,conversations)。JSF开发人员可以从这个增强的导航模型中获益。概括地说,Web Flow增加了:
    • 无需服务器重启,即可动态改变导航规则;
    • 流程定义语言内建了完整的前进、后退、刷新、重定向和递归导航能力;
    • 通过流程定义概念,模块化和封装导航逻辑。

    为适应状态管理的需要,除了JSF标准的Request、Session和Application,Web Flow增加了会话(conversation)、闪存(flash)和流程(flow)状态。

Donald文章的评论中Matt Raible写道:

……我认为Interface21和JBoss都在JSF问题的解决方案上投入很多是一种很有趣的现象。难道通过支持JSF可以获得很多钱?实际上,你会喜欢这两家公司所做的事情:他们正在构建克服JSF短处的解决方案,并且将他们的解决方案免费地回馈给社区。更酷的是,两家公司正视图将他们的解决方案集成进下一版本的JSF。就我个人观点,这将使每个人受益……

查看英文原文:Spring Web Flow Enhances JSF Navigation and State


译者简介:胡键,自2000年西安交通大学硕士毕业后一直从事软件开发。2002年开始使用Java,在项目开发中经常采用OpenSource工具,如Ant、Maven、Hibernate、Struts等,目前正在研究信息集成方面的规范和技术。可以通过jianhgreat AT hotmail.com与他联系,或访问博客:http://foxgem.javaeye.com/。为InfoQ中文站贡献内容,请邮件至china-editorial@infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT