信息化 频道

MyCRM标准版



   笔者认为这个评价标准,值得大家借鉴。 

    然后,Matt按照这些评价标准,对各个框架做了以下阐述: 
    Ajax支持 
    JSF:没有内置的Ajax支持,需要使用ICEfaces和Ajax4JSF 
    Stripes:没有对应的类库,支持流输出 
    Struts 2:内置Dojo,有用于GWT和JSON的插件 
    Spring MVC:没有对应的类库,需要使用DWR和Spring MVC扩展 
    Tapestry:Tapestry 4.1中,有内置的Dojo 
    Wicket:有Dojo和Script.aculo.us支持 

    书签能力 
    JSF:可以任意提交——URL甚至不被考虑 
    Stripes:使用约定,但是你可以不加理会 
    Struts 2:有命名空间的概念,这使得收藏某个页面并返回变得容易 
    Spring MVC:允许完全的URL控制 
    Tapestry:依然存在一些丑陋的URL 
    Wicket:允许装配(mount)页面/URL     

    验证 
    JSF:默认的国际化信息丑陋,但是配置简单 
    Stripes和Wicket:用Java类进行验证——不支持客户端验证 
    Struts 2:使用OGNL完成强大的表达式验证功能;只有在Action上指定了规则,才支持客户端验证。 
    Spring MVC:允许你使用公共验证器——这是一种成熟的解决方案 
    Tapestry:有健壮的验证功能——不需自定义就有漂亮的国际化信息 

    可测试性 
    Spring MVC和Struts 2:允许利用mocks(例如EasyMock、jMock和Spring Mocks)简单地进行测试 
    Tapestry:测试困难,因为页面类被抽象、具体类被简化 
    JSF:页面类可以方便地被测试,实际上很像Struts 2 中的actions 
    Wicket:有WicketTester——一个强大的解决方案 
    Stripes:有Servlet API Mocks和MockRoundtrip 

    提交和重定向 
    解决重复提交问题的最简单方法是:在提交后重定向 
    Spring MVC:允许你将参数加到重定向URL上 
    Stripes、Tapestry和Wicket:有“flash式”的支持 
    Struts 2:需要一个自定义的解决方案 
    JSF:需要一个自定义的解决方案,国际化信息很难加入到页面bean中 

    国际化 
    JSTL的<fmt:message>标签使国际化变得简单;如何将国际化信息放到控制器类中,还没有一个统一的标准。 
    Stripes、Spring MVC和JSF:每个地区使用一个资源绑定文件 
    Struts 2、Tapestry和Wicket:提倡把每个页面/action用到的资源文件分开 
    JSF:需要在每个页面上定义资源绑定信息 
    Tapestry:<span key="key.name">标签比较可怕 

    页面修饰 
    Tiles能够用于Struts 2、Spring MVC和JSF中;需要对每个页面进行配置。 
    SiteMesh能够用于所有的这些框架中(不推荐在JSF、Tapestry或者Wicket中使用);在设置完成后, 只需要很少的维护。 

    开发工具 
    Spring MVC:Spring IDE,但是只做XML校验,不是一个UI/web工具 
    Struts 2:Eclipse 
    Tapestry:Spindle,对编码者非常有利 
    JSF:众多IDE支持,并且做得越来越好 
    Stripes和Wicket:没有任何官方工具 
    NetBeans目前支持Struts *、JSF(+Facelets)、Tapestry和Wicket,尚不支持Stripes和Spring MVC


0
相关文章