Struts2 or Tapestry哪个更好一点
有人使用过Tapestry吗?这东西的性能怎么样?跟Struts2相比,在开发效率与运行效率上哪个好一点。。请大虾们指教。
action传值 可以注入一个page class然后调用set方法就好了。 或者这样 http://www.xxx.com/posts/1000 在你的pageclass定义 onactivate(long id) 和 onPassivate方法就是了。
T5的URL天然是rest样式的
T5的page class是pojo 这个跟struts2没有区别。 而且struts2还要implement一大坨的接口。
另外T5对单元测试也有支持 http://tapestry.apache.org/tapestry5/guide/unit-testing-pages.html
这里回答你的页面传参数的问题 http://tapestry.apache.org/tapestry5/guide/pagenav.html
至于重启server会不会带来效率的提高 我想大家都有大家的看法。 我觉得是方便太多了 如果不是为什么现在这么多人追捧解释型的语言做表示层? 我也在看Groovy。
7 楼 hantsy 2008-10-20 页面上,t5 不如wicket简洁,现在的t5 的语法和jsp taglib有什么差别,同样对页面设计人员来说不友好,t4 的页面比较简洁,但要借助page配置页面组件。 8 楼 downpour 2008-10-20 不谈框架的好坏了,没多大意义,自己看着办。
反正对于我这种吃过T3的亏,觉得T5也不怎么样的人对于Tapestry实在是不能接受的。 9 楼 dengyin2000 2008-10-20 hantsy 写道页面上,t5 不如wicket简洁,现在的t5 的语法和jsp taglib有什么差别,同样对页面设计人员来说不友好,t4 的页面比较简洁,但要借助page配置页面组件。
t5的语法跟facelet很像,其实facelet是参照tapestry。 t5也可以把组件定义到page class中。
10 楼 dengyin2000 2008-10-20 downpour 写道不谈框架的好坏了,没多大意义,自己看着办。
反正对于我这种吃过T3的亏,觉得T5也不怎么样的人对于Tapestry实在是不能接受的。
其实很多人都觉得t3比t4更好。 我最近用T5做了一个项目,感觉非常不错。 只是比起struts那种框架强太多了。 公司也有用struts2+freemark的项目。 感觉太复杂了。 刚用T5做的那个项目其实是没有一个人是有T5的经验的。 也就是我对T5有过一些研究, 看过T5的文档。 但是其他两个以前根本没有接触过Tapestry的人在我的帮助下上手也非常快。 事后都觉得T5比struts2好太多了。 不过对于项目中有大批掌握struts人的公司来说, 大可不必趟T5这条“混水”。 11 楼 dan 2008-10-20 1.運行效率,應該都是一樣快的,除非架構轉發commmad的過程寫的不好,但用java寫差不了多少,為什麼說是一樣快,因為html最快,請求跟查詢一樣就可做到Cache,尤其論壇的條件很適合Cache,在Struts2有,相信T5也有用到Cache,可以看一下T5 page的生命週期。
2.開發效率,這一點很難說誰好,現在User要求頁面的互動要更良好,只AJAX+Data,就
無法對頁面設計人員友好,頁面組件是必須時,開發人員所看的就會與頁面設計人員差異
很大,如果再加上AJAX+Data+Div時那就更難了。
基本上如果T5或Struts2只有一知半解,再快的架構也一樣,如果這個版本有Bug你可以自行修復,那代表你已經可以活用它了,在這樣情況下用T5開發跟Struts2開發的時間兩者應差不多,剩下只有個人喜好問題。
樓主不應該去思考T5 and Struts2運行效率跟開發效率,應該去想你比較喜歡那一個
因為喜歡才用的順手。
12 楼 dengyin2000 2008-10-20 dan 写道1.運行效率,應該都是一樣快的,除非架構轉發commmad的過程寫的不好,但用java寫差不了多少,為什麼說是一樣快,因為html最快,請求跟查詢一樣就可做到Cache,尤其論壇的條件很適合Cache,在Struts2有,相信T5也有用到Cache,可以看一下T5 page的生命週期。
2.開發效率,這一點很難說誰好,現在User要求頁面的互動要更良好,只AJAX+Data,就
無法對頁面設計人員友好,頁面組件是必須時,開發人員所看的就會與頁面設計人員差異
很大,如果再加上AJAX+Data+Div時那就更難了。
基本上如果T5或Struts2只有一知半解,再快的架構也一樣,如果這個版本有Bug你可以自行修復,那代表你已經可以活用它了,在這樣情況下用T5開發跟Struts2開發的時間兩者應差不多,剩下只有個人喜好問題。
樓主不應該去思考T5 and Struts2運行效率跟開發效率,應該去想你比較喜歡那一個
因為喜歡才用的順手。
难道开发效率都在写html上面? 不在page class和写action上? tapestry改类可以不用重启server 这点不吸引人? 如果是搞ajax应用的话 跟用那个web框架感觉没有什么太大的关系 选一个好的javascript 框架比web框架重要得多。 以前我们用的是dojo+jsonrpc+jst.
13 楼 76052186 2008-10-21 我不知道struts2与t5那个更好,我只能说绝对比struts1好得多。而且与jsf比较起来我感觉t5也要好。
例几个我认为好的特性吧:
1.url是rest的。
2.组件写其来很舒服,自少比我写jsp 的tag好很多。
3.以前一直有人说t上手难度大,t5以前我不清楚,但t5我觉得没那么难,很多东西文档上没有的,通过启动日志,源码就能解决,但是文档是t5的大问题。
4.页面的跳转,参数的传递都很方便。
6.对aja的封装也很好,不过对特别的要求还是有问题。
当然现在的t5还是有很多bug,而且还没正式发布。一句话,我喜欢。
14 楼 dan 2008-10-21 dengyin2000 写道
难道开发效率都在写html上面? 不在page class和写action上? tapestry改类可以不用重启server 这点不吸引人? 如果是搞ajax应用的话 跟用那个web框架感觉没有什么太大的关系 选一个好的javascript 框架比web框架重要得多。 以前我们用的是dojo+jsonrpc+jst.
我不是要比較兩者誰好誰不好,而是我只是想表達,這兩者都差不多,決定運行效率和開發效率,是在
於你對架構的熟悉度,還有以你的個性你比較喜歡哪一種,這樣用起來才會開心,自己因喜歡而深入研
究,寫出下面是想說明不要去在乎這兩者的運行效率和開發效率,最重要是你喜歡。
1.運行效率
我的意思不是都用html,而是如何Cache,可以看一下JavaEye的Cache機制文章,兩者的運行效率就看你
如何做,決定在人,就像寫Ror不是每個人都可以用好Cache的機制。
2.Tapestry改類可以不用重啟server
基本上編譯式的語言類別更新都要classloader,我不清楚tapestry改類發生什麼樣的行為,但只要是
Java寫的都一樣,我只要將Tapestry的改類代碼行為,寫到Struts2組件上就可以辦到了。
3.如果是搞ajax應用的話 跟用那個web框架感覺沒有什麼太大的關係 選一個好的javascript 框架比web框架重要得多
你誤會我的意思了,我無法正確表達我的意思,你可以看一下Grails和Ror項目在Dreamweaver下問美工人員
是否友好,試著做看看,再問一下美工人員,凡事不能自己覺的美工好就好,更應問美工人員的想法。
15 楼 dengyin2000 2008-10-21 dan 写道dengyin2000 写道
难道开发效率都在写html上面? 不在page class和写action上? tapestry改类可以不用重启server 这点不吸引人? 如果是搞ajax应用的话 跟用那个web框架感觉没有什么太大的关系 选一个好的javascript 框架比web框架重要得多。 以前我们用的是dojo+jsonrpc+jst.
我不是要比較兩者誰好誰不好,而是我只是想表達,這兩者都差不多,決定運行效率和開發效率,是在
於你對架構的熟悉度,還有以你的個性你比較喜歡哪一種,這樣用起來才會開心,自己因喜歡而深入研
究,寫出下面是想說明不要去在乎這兩者的運行效率和開發效率,最重要是你喜歡。
1.運行效率
我的意思不是都用html,而是如何Cache,可以看一下JavaEye的Cache機制文章,兩者的運行效率就看你
如何做,決定在人,就像寫Ror不是每個人都可以用好Cache的機制。
2.Tapestry改類可以不用重啟server
基本上編譯式的語言類別更新都要classloader,我不清楚tapestry改類發生什麼樣的行為,但只要是
Java寫的都一樣,我只要將Tapestry的改類代碼行為,寫到Struts2組件上就可以辦到了。
3.如果是搞ajax應用的話 跟用那個web框架感覺沒有什麼太大的關係 選一個好的javascript 框架比web框架重要得多
你誤會我的意思了,我無法正確表達我的意思,你可以看一下Grails和Ror項目在Dreamweaver下問美工人員
是否友好,試著做看看,再問一下美工人員,凡事不能自己覺的美工好就好,更應問美工人員的想法。
1.我说的是开发效率, 你说的是运行效率。
2.Tapestry是自己写了个classloader来实现这个效果的。 现在好像只有Tapestry才有这样功能。 其他的框架当然是可以实现,但struts2现在还没有这样功能。所以这个可以说是tapestry的一个亮点。 不重启server带来的好处是不言而喻的。
3.我对jsp tag也是非常讨厌, 自己写个tag麻烦的要死, jsf 用jsp tag, 用jsf写个组件太复杂了。 JSF最多也就算半个基于组件的框架。 Wicket tapestry写个组件非常方便。
我最近也在看Groovy,Grails。 我知道dan对Groovy有很深的研究。 web的效率问题大多数发生在数据库这层。 所以选择web框架应该选个自己觉得效率最高的。
16 楼 koalant 2008-10-21 chinarefers 写道
Tapestry的群体一般都很愤青,千万不要和他们讨论Tapestry的缺点。
其实搞 JAVA 的人都很愤青,再往大点说,搞软件开发的都很愤青,哪个开发团体没点脾气,不维护自己开发的东西呢?
Linus 骂搞 openbsd 的人都是“手淫的猴子”,rails 创始人 DHH 也是个把不住嘴到处得罪人的主儿,Grails 1.0 发布的当天还给 Grails 开发组发邮件让人把 on rails 去掉。 JAVAEYE 这里也是经常开骂的战场。 别光拿 Tapestry 说事,都是搞软件的, 谁也比谁强不到哪里去,五十步笑百步而已。
框架这种东西并不是你说它好就好,你说它不好它就完蛋的,有人做出成功案例了,就有它存在的价值,Tapestry 有 Theserverside.com 这个成功案例应该就很能说明问题。至于开发效率来说,并不能说明一切,有些框架的效率是靠牺牲维护性换来的,开发效率也不是全部。我以前用过 Tapestry, Tapestry 对美工来说,肯定比 Struts 友好的多。 17 楼 koalant 2008-10-21 dengyin2000 写道 Wicket tapestry写个组件非常方便。
我最近也在看Groovy,Grails。 我知道dan对Groovy有很深的研究。 web的效率问题大多数发生在数据库这层。 所以选择web框架应该选个自己觉得效率最高的。
Wicket tapestry 这两个框架的确很相似,感觉好像 wicket 比 tapestry 更简单一些。 不过可能是使用脚本语言时间长了,我更喜欢 grails 这种框架。
18 楼 speedy 2008-10-21 谢谢各位的讨论,我已基本知道要怎么选择了。。 19 楼 KorbenZhang 2008-10-21 看来我也有愤青的潜质了,因为我在用T5。不过我只能客观地说说使用感受,因为我对其他框架了解不深入。
1.学习曲线。以前开始看的时候,很多地方都提到学习曲线非常高。但我个人感觉,只要理解内在约定及其含义,还是很容易接受的。
现在用maven一条语句即可生成项目最初骨架,改一改java,tml马上可以看到效果,很是很方便的。当然这里能立即生效的正如dengyin所说,是限于t所监控的范围,包括页面、组件等,不误导大家。
t的模式有利于美工和开发人员分工,这也是见到t的介绍中比较多提到的。据我经验,美工人员和开发人员要遵守一些约定才能合作愉快。比如美工人员要晓得含有t:代表什么含义,那些可以随意改动,那些不能改动。
单纯美工图片MM,布局MM,需要接受开发人员的安排,因为页面美化有些方面还包括如何展现。尤其是现在的网页展现较多运用div,css,更需要统一考虑,全部页面要共享一些要素,图片MM,布局MM也要学好多东西,知道如何与开发人员配合。
T使用layout进行布局,和tile相比可能灵活性不够。
总之,关于学习曲线,大家不要被误导,正如dengyin所说,对t一点不知的人,经过一段时间学习,很快可以上手。
2.关于组件。我个人认为组件是t的一大特色。首先我想说定义组件在t中是非常容易的,至少t5中是很容易的。组建复用是我在使用t过程中最感有成效的地方。
3.t的邮件组不错。
4.t的注入很方便,内建了一些服务可以立即使用,如logger,messages,request等。
t集成spring也比以前简单多了,在web.xml中改动一个filter就可以了。
光说优点不是实事求是的态度,t的缺点我也总结几条:
1. 中文资料不丰富。t5的预览版已经一年多了,一直没有发布正式版,英文刚出来,e文翻译需要一段时间。javaeye有些高手翻译了一些,但现在好像很少更新了。E文弱的人学起来比较吃力。
2. 变化太快。不断的重构是开发软件的要求,但t一重构,终端用户都得跟着变,一个新版本发布经常带来兼容问题,要改上半天,追踪版本的朋友会有此体会。t不断应用新观点,新技术,创新精神难能可贵,是理想的技术学习场所。
欢迎专业拍砖人士路过、拍砖。 20 楼 dengyin2000 2008-10-21 关于T5的学习曲线问题。 个人感觉比struts2的曲线低很多。 struts2 要熟悉各种intercept validate titles 还有struts.xml的写法。 T5的话 就看官方的User guide再加上wiki里面的howto就基本没问题了(别跟我说你英文不行,不行的话就去学)。 如果遇到一些问题到mailinglist里面都能找到解决方案 21 楼 donyee 2008-10-21 从T5刚出5.05我就拿来做毕业设计,毕业论文也是说T5的,
现在公司做项目也做了几个
学习曲线我觉得没有什么问题,有Struts经验的最多一个月可以上手,
另外可以用Groovy来写页面,很不错的,
和Spring、Hibernate集成很方便
运用了许多注释,可以少写许多代码