`

Seam能否取代Struts?

阅读更多

  本文分析了JBoss Seam有望取代Struts成为Java Web应用框架”下一个王者”的原因,并且指出了Spring和Google Web工具包的不足。

  时至今日,Apache Struts仍旧是最受欢迎的Java Web应用框架。然而,对于新的应用开发,它显得有些过时,并且存在很多不足。

  目前已经出现了几个有望取代Struts的框架,但是还没有最终的胜利者。你认为谁会当之无愧地成为领导者呢?如果你是一个Java Web应用程序的开发者,你会选择哪种框架呢?

  目前已经有了很多受欢迎的Web UI技术,包括富界面、AJAX、RIA和其他一些相似的技术。

  然而,在服务器端仍然只有Java——Java中有许多基于JSP和Servlets的、流行的服务器端技术。许多时候,这些服务器端技术需要和客户端的富界面技术一起使用。

  举例来说,许多开发人员将AJAX与新生代的Java Web框架JSF合并起来一起使用;还有些开发人员通过Java远程调用库、开源或者商业代码来调用JavaScript和ActionScript,用于远程访问服务器端。

  这是否意味着,我们需要应用一个像Apache Shale那样,可以很好地和JSF工作的框架呢?这是否意味着,我们只需要根据Web应用中的Java部分,只使用远程访问包和Servlets呢?或者意味着,我们应该使用一个包含两者的框架,例如,JBoss Seam?

  在回答这些问题之前,让我们先关注一下另外一个问题:了解Sun究竟在说什么。

  不幸的是,在这点上,Sun没有明确的信息。它有三种战略,并且在同一时间,它说出了全部这三种。它们是:

  1. JSF——基于规范的服务器端组件,用于加强早期的Servlets和JSF模型。

  2. Swing——用于Web的、以虚拟机为基础的解决方案。在”富界面时代”,应该有这样一个领导者,毕竟它诞生于10年前。但是,不幸的是,它落伍了。Swing应用框架被誉为能使Swing复活的”救世主”。但是,我不认为这能”破冰”。

  3. JavaFX——目前主要是在新闻上会提到它,而实际应用还是很少。富Web应用框架包含手机、网站和任何其他接口,这就是答案所在。而只有时间才能告诉什么会变成它。我的观点是,在做更多事情之前,Sun已经使开发者们兴奋起来。所以,在开发者们感到失望并且离开这个阵营之前,它实际上可能是一个奇妙的选择。

  现在,我们有了这些信息,但是我对Sun的方向却产生了困惑,我们应该选择哪种作为Web应用技术呢?

  我的观点是,Swing会败下阵来(或许Swing技术是伟大的,但是要改变这一印象,还有大量的工作需要做);JavaFX在当前阶段只是一个承诺,在很长时间内,它的真正特性不会变得明朗起来;

  因此,唯一可行的选择是JSF。当然,JSF自身有一系列的问题。但是,像Seam这样的框架和包含ICEfaces这样的AJAX组件,将会是一个好的选择。

  此外,使用Seam这样的框架,你不需要依赖于JSF,并且你甚至可以使用它来远程访问Java服务器端的纯JavaScript(例如,Dojo工具包)或者Adobe Flex应用。JSF 2.0和JavaServlets 3.0也即将推出,两者的推出将会对之前的版本有大大的改进。

  在我们结束讨论,并且有点倾向于使用Seam作为选择的框架之前,还有两个选择值得考虑——Spring和Google Web工具包。

  如果你已经在服务器端使用了Spring,将会发现Spring是一个伟大的选择,项目组里的每个人都知道Spring很棒!

  然而,Spring在很多方面,偏离了Java EE标准,但是我建议紧跟标准。

  有趣的是,Seam可以和Spring工作在一起,并且Spring beans可以被用作Seam组件。

  Google Web工具包是一个充满想象力的工具,它通过把Java代码转换成JavaScript来抚慰Java开发者们。我认为它像”技术摇滚明星”一样吸引了许多开发人员的关注。目前,它也在被大量采用。

  然而,它不是一个完整的Web框架。

  有趣的是,它也可以和Seam工作在一起。所以,我不认为今天还有什么能够好过Seam?!

  JBoss Seam或许不是100%的答案,也或许还没有达到Apache Struts所达到的级别。但是,它已经在领跑了,并且毫无疑问的是,它将继续领跑,除非有新的选择出现。

1
2
分享到:
评论
2 楼 myiris_gm 2008-07-30  
拭目以待…… 
1 楼 linbzh 2008-06-17  
struts1.x其实没什么,只是先入为主,成熟而已,其他的比如spring,struts2.x等等的框架相对都比struts1.x优秀。struts1.x地位的动摇是必然的。

相关推荐

    jboss seam 学习资料,seam in action和官方手册

    **JBoss Seam 学习资源概述** JBoss Seam 是一个开源的应用程序框架,它整合了JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA) 和其他Java EE技术,旨在简化开发过程,提高开发...

    seam_carving 代码实现 seam

    Seam Carving,又称图像拉链,是一种基于能量最小化的图像调整方法,主要用于图像大小的动态调整,而不仅仅是简单的等比例缩放。它能够在保持图像主要结构不变的情况下,根据需要增加或减少图像的宽度和高度。这种...

    JBOSS SEAM组件中文手册

    **JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...

    Seam框架文档简述

    Seam不仅仅是一个框架,它还致力于推动Java EE规范的发展。Seam对多个Java EE规范进行了补充和扩展,比如JSF、Servlet等,并且参与制定了新的WebBean规范(JSR 299)。 ##### 9. 强大的胶水功能 Seam作为一个胶水...

    为Seam做好准备

    8. **Seam工具**:Seam提供了一些工具,如Seam Gen,可以帮助快速生成项目结构和基础代码,学习如何使用这些工具能加速开发进程。 9. **Seam事件和上下文**:Seam引入了一种独特的事件模型和组件上下文,使得组件间...

    JBoss Seam入门介绍

    Seam将Java EE 5.0组件与JSF托管bean紧密集成,即使不使用Java EE 5.0,也可以选择POJO作为Seam组件,这种灵活性使得Seam适用于更多场景。 #### 3. AJAX支持 Seam支持多个开源JSF AJAX库,如JBoss RichFaces和JBoss...

    seam in action 中文 english

    对于初学者,中文版会是一个更好的起点,因为它能帮助快速理解和掌握Seam框架的概念和用法。 总的来说,《Seam in Action》这本书不仅详细介绍了Seam框架的各个方面,而且提供了大量的实例和实践指导,对于希望提升...

    Seam security

    该方法必须能被EL访问,并且不需要遵循特殊的接口。它在Seam组件描述符中声明。 10. JSF登录表单创建:创建原生的JSF登录表单,将凭证绑定到表单输入,并将表单动作与身份组件的登录方法进行有线连接。Seam还内置了...

    MATLAB_Seam_Carving_seamcarving_

    MATLAB_Seam_Carving_seamcarving_ 是一个与图像处理相关的项目,主要涉及到一种称为“seam carving”的技术,这是一种动态图像调整大小的方法,它可以在不改变图像整体视觉效果的情况下,增加或减少图像的宽度和...

    seam_in_action

    根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...

    Jboss Seam中文版

    ### JBoss Seam中文版知识点详解 #### JBoss Seam简介 JBoss Seam是一个强大的企业级应用开发框架,基于Java EE标准,特别强调简化Web应用的开发流程。它通过整合多种技术如JSF、EJB 3.0等,提供了一种更为高效、...

    seam参考手册中文版

    通过以上知识点的梳理,我们可以看到Seam不仅仅是一个简单的Web开发框架,它还融合了诸如业务流程管理、持久层支持等多种功能。这使得开发者能够更加专注于业务逻辑本身,而不是被底层的技术细节所困扰。对于想要...

    seam需要的jar包

    Seam框架是一个全面的Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)以及许多其他Java EE技术,为开发者提供了强大的组件模型和丰富的功能,旨在简化...

    SEAM 中文开发指南

    ### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...

    Seam Carving的C++实现代码

    Seam Carving是一种图像内容感知的尺寸调整方法,它能够在保持图像主要结构不变的情况下,智能地减少或增加图像的宽度和高度。这种方法是由Amit Agarwal和Matthieu Salzmann于2007年提出的,其核心思想是通过找到...

    seam的注解和标签

    Seam是一个Java EE框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Inversion of Control(IoC)和Enterprise JavaBeans(EJB)等技术融合在一起,为开发复杂的Web应用程序提供了便利。在Seam框架...

    Seam - 语境相关的组件

    通过阅读这份资料,你应该能掌握Seam框架如何利用语境相关的组件来优化Java EE应用的开发,以及如何在实际项目中应用这些概念。此外,你还可以了解到Seam的其他特性,如国际化、测试支持和性能优化等。总之,深入...

    jboss-seam2.0文档

    【JBoss Seam 2.0文档详解】 JBoss Seam 是一个开源的企业级开发框架,它旨在简化Java EE应用的开发过程,特别是在Web和富互联网应用程序(Rich Internet Applications, RIA)领域。Seam 2.0是其重要的版本,提供了...

    seam级联菜单例子

    Seam是一个开源的Java EE框架,它将JavaServer Faces(JSF)与EJB3、Hibernate等技术结合在一起,提供了一种更为简化的企业级开发方式。在这个“seam级联菜单例子”中,我们将深入探讨如何在Seam应用中实现级联选择...

Global site tag (gtag.js) - Google Analytics