|
Struts |
JSF |
Tapestry |
ASP.NET |
Architecture |
跳转模型 MVC |
跳转模型 Front Controller+组件化编程 |
页面模型 Page Controller+组件化编程 |
页面模型 Page Controller+组件化编程 |
Programming Model |
业务逻辑: Struts1中需要继承基类;Struts2是POJO的模型; 页面逻辑: 有很不同实现,可以是JSP,也可以是通过模版引擎渲染。 |
业务逻辑: POJO的编程风格; 页面逻辑: 主要是JSP,也可以用HTML风格。 |
业务逻辑: Taperstry4需要继承基类;但Taperstry5就是POJO风格; 页面逻辑: 普通的HTML。 |
业务逻辑: 需要继承基类; 页面逻辑: 类似JSP,但不同的是,该页面实际是业务逻辑类的子类。 |
Request Process |
|
由官方定义的六个步骤组成; |
取决于Engine Service。 |
由官方定义的15个步骤组成。 |
Navigation |
Path和Action绑定,需要配置文件解析。 |
通过faces-config.xml配置文件完成。 |
URL是全局的,没有额外的配置文件; 除非显式跳转,所以行为都在本Page上。 而跳转分两种: 1. DirectLink写在页面上 2. 在代码逻辑中定义页面跳转逻辑。 |
同Tapestry类似。 |
Event handling |
无 |
页面定义事件发起;两种方式参数传递方式:一种分离传递;另一种通过FacesContext。 |
页面定义事件发起;直接赋予参数,没有参数个数限制;除此外还有内置的生命周期相关的event |
类似Swing的事件控制方式。 |
Component State |
无 |
没有状态维护机制,每次request都从建组件。 |
提供组件状态的维护机制。 |
提供组件状态的维护机制。 |
Component Dev |
无 |
基于JSP Tag的开发方式。 |
开发方式类似Page, 逻辑代码和页面分离,页面输出使用HTML。 |
开发方式类似Page;逻辑代码和页面分离;页面输出可以复用已有的组件 |
View |
有很不同实现,可以是JSP,也可以是通过模版引擎渲染。 |
主要是JSP,也可以用HTML风格。 |
HTML |
类似JSP页面。 |
Validation and Conversion |
|
提供了多种方式支持,但客户端验证支持不好,同时在form一级的支持不好,通常需要项目自己定制。 |
同样提供多种方式支持;此外提供客户端的Validation;天然地支持form一级支持。 |
类似Tapestry。 |
I18N |
较好的支持。 |
较好的支持。 |
很好的支持,额外提供预览功能。 |
|
Testability |
Struts1的测试不容易,Strut2测试容易简单。 |
测试支持简单容易。 |
Tapestry4的测试不容易,不过Tapestry5的测试可以很简单。 |
不容易测试。 |
Extensibility |
|
良好 |
良好 |
良好 |
Industry Momentum |
广泛使用,目前各种资源都不错。 |
JSF业界标准,业内厂商支持会比较多,不过未必不会出现EJB2的结局。 |
应用范围小于Struts,之前的版本学习曲线太高。 |
微软地主老财,有大把的钱;此外,大量的第三方公司提供支持。 |
Migrate |
|
从Struts迁移不难; |
从Struts或者JSP迁移难度较大些。 |
|
因为工作原因,最近一直在使用Spring Web Flow,与之上几个Web框架对比优点是:
1. 页面流程明确, 除去JSF外,其它几类框架要明确获取页面流程信息并不容易. 对于企业开发来说,这点其实蛮重要的. 一般的互联网网站没有特别的好处.
2. 不需要再写Action等Web控制类. 虽然Struts2,JSF和Tapestry都是POJO了,但依然存在属于Web层范畴的类,而Spring Web Flow不需要,逻辑写在Flow文件中, 直接访问Service对象,获取Domain Model(我们还同时省略了VO). 当然这点可能有同学持反对意见.仁者见仁了!
3. Spring Web Flow提供单元测试能可以容易覆盖页面流程了.
相关推荐
Golang Web框架比较 该套件旨在比较各种Go Web框架和路由器的公共API。 注意虽然代码块是自解释的,但PRO的列表很受欢迎,而CON则很受关注,目标是Go 1.7+。 即使某些框架有更多 :thumbs_down: 他们仍然很棒,并且...
zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架
web框架web框架web框架web框架web框架web框架web框架web框架
基于bootstrap框架拓展的web框架基于bootstrap框架拓展的web框架基于bootstrap框架拓展的web框架基于bootstrap框架拓展的web框架
C++开发web服务框架之HTTP Web框架的设计与实现 基于vs2015与boost的程序
web框架介绍,不同web框架的安全特质,框架漏洞静态分析方法,框架漏洞动态分析方法,自动fuzzing人工检测等
spring mybatis web框架
《Delphi Web前端开发教程——基于TMS WEB Core框架》PDF本教程适合对使用Delphi TMS WEB Core 创建 Web 应用程序感兴趣的初学者和高级开发人员。学习本教程只需要免费的 Delphi 社区版以及 TMS WEB Core 的试用版就...
axure的web后台框架,包含菜单和内联框架,高保真,非常的好看,大家可以放心下载;axure的web后台框架,包含菜单和内联框架,高保真,非常的好看,大家可以放心下载
Web前端框架技术综述.pdf
web框架搭建.pdf
.Net Web 开发简易框架 .Net Web 开发简易框架 .Net Web 开发简易框架
xweb 一个具有很少代码的Web框架
web网页框架教程,框架是web网页开发必不可少的重要知识,本文档详细介绍了web框架的制作过程。
python最快的web框架,支持异步,哈哈哈
OpenERP_6.1_web框架指南
一个简单的java web开发框架.详细请看帮助
从零开始搭建Java Web框架,使用的开发环境是IDEA15+tomcat8+jdk8+maven3; web.xml如何编写;pom.xml如何编写;将代码导入你的idea,部署一下tomcat,就可以运行
《架构探险——从零开始写Java Web框架》首先从一个简单的 Web 应用开始,让读者学会如何使用IDEA、Maven、Git等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求...