Chinaunix首页 | 论坛 | 博客
  • 博客访问: 606064
  • 博文数量: 796
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5095
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-10 09:43
文章分类

全部博文(796)

文章存档

2011年(1)

2008年(795)

我的朋友

分类:

2008-09-10 09:59:34

    通过上两篇文章的研究,影响Struts2性能的原因在于Ognl的Value Stack的性能不佳。那么如果解决呢:我首先尝试使用JSF.一开始选择JSF的原因主要是:

    1、Stuts2自己提供了JSF的Plugin2、JSF是Sun作为标准提出,而且已经通过的。从Google的趋势搜索上也可以看出,搜索JSF的人在增多。

    3、JSF作为一种以组件为基础的Web Framework有其独到之处,其内建的和其他许多开源的组件使用起来相当方便、强大。当然,对于不同的应用来说也有不利之处(后面会提到),但是如果能够坚持长期使用,逐渐积累组件库的话,JSF是一个很好的选择。

    4、JSF的文档(或者说是书籍)还是比较多的。

    经过使用后,发现其性能与Struts2相比确实提升不少。但是后来遇到了一个问题,所以最后还是放弃了JSF.这个问题是关于JSF的DataTable的,JSF提供的DataTable其实使用起来很方便,可定制化程度也不错,只是刚好缺少了我所希望的功能(也可能是我不知道如何实现)。我的应用中的DataTable是一个动态的结果集,也就是说输出的列是不能预先确定的,而DataTable却要求先声明好所有的DataColumn,我不知道如何解决这个问题。所以最后放弃了JSF.我的第二个选择是FreeMarker选择FreeMarker的原因是:

    1、FreeMarker是Struts2缺少的模板引擎,Struts2的标签大部分是使用FreeMarker的,使用FreeMarker的话,连Plugin都省去了。

    2、FreeMarker相对比较轻量级、因为他本身只是一个模板引擎,与JSF这样一个大而全的WebFramework相对,轻巧多了。

    3、FreeMarker的学习起来非常容易,只要把他网站上的Document过一遍,基本上就OK了。

    4、FreeMarker虽然体积小,功能还是相当强的,I18N,Converter之类的东西基本都全了,至少我所需要的功能全有。

    5、FreeMarker相当灵活,他不象JSF把底层的东西封装了以后,暴露出一些属性可以设置,如果你需要的属性不能设置,你就没有办法了。在FreeMarker你直接操作最底层的东西,拥有很大的灵活性。当然,牺牲了一些方便性,比如,要用FreeMarker生成一个下拉框,就需要较多的工作量了。

    之后,使用FreeMarker的性能很不错,在大数据量操作的情况下,至少一个数量级的性能提升。

    我的最终结论,如果要在Struts2中,展示或者操作大量数据,强烈推荐使用FreeMarker.

【责编:Chuan】

--------------------next---------------------

阅读(219) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~