Jboss seam使用的前端展示层技术是JSF,而且目前只支持JSF,不支持struts, struts2, spring mvc等很多其它的web框架。看来jboss seam的设计者是很看重 JSF的。用了几个月的seam之后,我对JSF的认识终于有一些切身的体会(以前虽看过一些资料,但是没有实际应用过)。我以前一直是用像spring mvc这样很传统的MVC框架的,从这些框架转到JSF上面确实让人很是不适应。 从表面上看来JSF也像是个MVC框架,有展示用的页面,有可以抽出来的处理逻辑单元,有负责调度的导航规则,就像是MVC里的view model 和controller一样。但是这两种解决方案实际上很不一样,最主要体现在他们的世界观和方法学上。在MVC的眼里,世界都是由model view controller 组成的,解决问题就是划分这三种组件,并组织好在这种组件间流动的数据,而在JSF的眼里,世界是由组件构成的,解决问题就是组织这些组件,并在组件上发 生事件时,适当地处理事件。如果说MVC是用面向数据流的方法来处理问题,那么JSF就是面向对象了。 JSF确实带来了很多好处,利用现有JSF框架,把别人做好的组件放到页面上就形成了一个想要的页面,比纯手写页面代码要方便得多。JSF内置的 validation和event机制也很好用。怪不得jboss seam选用JSF作为它的展现层技术。使用seam这几个月,还是对JSF这种东西有些不满。JSF的标准组件实在太少太弱了,由其是Table组件, 非常弱,如果不是seam对JSF做了些增强,这个Table其本上就没什么用。SEAM里选用了开源JSF实现库,带来不少组件,看起来都很酷,但是用 起来总觉得不爽,不成熟,爱出错。对于一个页面构成和功能相当复杂,比如像GMAIL那样的(当然这个例子比较夸张),用JSF来做的时候基本上就只有一 个选择,就是自定义组件,很可惜的是自定义组件差不是一件很容易而有趣的事。如果你是一个前端高手,喜欢手写出漂亮而高较的前端代码,对不起,JSF也不 适合你,它生成的那些html和javascript,会让你想要修改它时而发狂。其实我觉得JSF这种东东只能用来做做由一堆堆表单组成的企业应用后 台,做网站。为什么会这样呢?我觉得这都是jsf试图掩盖http基于数据流的本质而造成的。它不想让你看到http请求与回应,只想让你看到组件与事 件,而这样做是要付出代价的。相对的,MVC正好顺应了http的这种特性,在编写页面上你可以有更高的自由度。 如果只是做一个企业内部使用的网站,重业务,轻页面,jsf还是不错的选择,如果你想做一个吸引人的高效的网站,还是用MVC吧!
分享到:
相关推荐
Java Web层框架之比较—比较JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket.doc
Learn and master the new features in the JSF 2.3 MVC web framework in this definitive guide written by two of the JavaServer Faces (JSF) specification leads. The authors take you through real-world ...
基于JSF技术的,利用MVC框架搭建的学生管理系统
MVC模式JSF与Struts的异同小结,仅仅是学习则以!
关于jsf+ejb+jpa整合,光盘上代码这样写的。
EJB,JPA,JSF,UML,WebService以及图形界面开发代码
JSF 的主要优势之一就是它既是 Java Web 应用程序的用户界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使 JSF 应用程序更易于管理。...
6.2.1 回顾MVC-控制器 6.2.2 Navigation HandleI-幕后主管 6.2.3 Faces动作方法说明 6.3 构建导航规则 6.3.1 静态导航示例 6.3.2 动态导航示例 6.4 更复杂的导航示例 6.4.1 使用通配符 6.4.2 使用条件导航 6.4.3 ...
操作对象:Mysql 操作工具:MyEclipse ...主要架构:MVC模式下Tomcat(JSF+数据库连接池) 主要目的:通过对代码的研究熟悉JSF技术,通过此项目争取做到举一反三拓展,共同学习,共同进步~ PS:数据表已导出
2.1 MVC和JSF 52 2.1.1 MVC和常见MVC框架 52 2.1.2 JSF的优势 56 2.2 下载和安装JSF 57 2.3 JSF使用入门 60 2.3.1 从输入页面开始 60 2.3.2 开发托管Bean 61 2.3.3 定义导航规则 63 2.4 解读JSF配置 65 2.4.1 配置...
本文将Ajax技术与MVC模式紧密结合,设计了一个新的MVC框架。应用该框架后,客户端请求基本都是Ajax请求。本文首次采用了Container这一概念,并提出了Container树结构信息的表示法,设计了针对该表示法的解析及生成算法。...
关于JSF的学习,运用了MVC经典模式。
此软件介绍webwork and struts and jsf的区别
一个用jsf+servlect+dao实现的一个小的登入系统,体现出来mvc架构思想,在此存储一下以后备用
JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Java Community Process (JCP) 开发的一种 Java 标准,因此开发工具供应商...
JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Java Community Process (JCP) 开发的一种 Java 标准,因此开发工具供应商...
JavaEE7 jsf + jaas + prittyfaces + 引导程序 + jpa 一个用于实践 Java EE 中使用的技术的项目
Model MVC2 1)Architecture of Framework JSF 2) Fonctionnement de JSF 3) make JSF 4) Introduction à PrimeFaces
6.2.1 回顾MVC-控制器 6.2.2 Navigation HandleI-幕后主管 6.2.3 Faces动作方法说明 6.3 构建导航规则 6.3.1 静态导航示例 6.3.2 动态导航示例 6.4 更复杂的导航示例 6.4.1 使用通配符 6.4.2 使用条件导航 6.4.3 ...
实验一 JSP+Servlet+Javabean+jdbc-基于MVC模式的数据库的应用 实验二 JSF+JPA实现用户注册 实验三 struts+spring+hibernate框架访问数据库的应用 实验四 使用WebService和EJBean访问数据库的应用