关于taglib,这是很容易被“滥用”的技术。比方,jstl:jdbc 它似乎鼓励了在 jsp 中嵌入 db 访问逻辑,这种方式也许并不合适。建议关注一下 jstl:core 。其一,它是比较成熟的标准;其二,它的功能很有限,其他的功能本来就应该用 java 代码来实现,这种功能的限制避免了你将他滥用。我们目前是把 maverick、hibernate 配合起来用,感觉“simple yet powerful”。jstl:core 是一个很好的“提取器”和“包装器”。

> >>maverick 的 pipe 非常好用
> 是不是和cocoon中的pipe概念差不多?

cocoon 的 pipe 了解不多,maverick 的 pipe 看上去是这样的:


...
<command name="main">
<controller class="your.package.MainController"/>
<view name="success" path="mainInfo.jsp">
<transform path="mainMenu.jsp"/>
<transform path="mainForm.jsp"/>
<transform path="list.m"/>
</view>
</command>
...

mainInfo.jsp 的内容是最初信息(比方个人信息)
它被 mainMenu.jsp 包装(加上menu部分)
再被 mainForm.jsp 包装(加上页头页尾)
再转向 list.m 处理(这是一支程序,它可以再加上某个查询结果)
最后合成的结果才被输出。就象“管道”一样,你可以将他们串起来。


> >>选择 mvc 框架更多的是取决于自己的口味?
> 要知道自己的口味,岂不是每个都要尝尝 :)

是这样,选择一个 mvc 的框架会让你很多代码的书写方式发生根本变化,这似乎不应该草率从事。至少,你可以花点时间 hello world 一下嘛。

古人云“如人饮水,冷暖自知”,饮都不饮,焉知冷暖?:)


再次强调,喜欢 maverick 是我的个人观点,如何选择 mvc 要看自己的习惯和口味。

我觉得 框架的应用 就是成熟化,经过诸多考验认为合理的api 应用。
要写一个好的框架,何其难也。要在框架上克隆一个应用确是比较容易,
只有充分理解了框架设计的出发点,才能选择最合适的框架。
所以,我建议大家讨论的时候是否能够共享出自己的学习成果,比如框架学习资料和Uml 图。一起降低框架的学习门槛。
当然,如果能够发现框架中的bug ,那更加有所成。于今后成为框架设计师大有帮助。

关于这些框架7月程序员里有些比较的。

不知道各位研究框架的有没有比较他们的共同点呢?其实struts是一个非常好的整和了一些模式,形成了工作者-服务模式。如果你研读一下《core j2ee patterns》看看表示层模式在对照struts,你会找到很多新的想法,感觉就是在讲解struts的。但struts在国外是已经很成熟的东西,所以已经在找替代,现在国外比较常用的还有webwork,maverisk;)不过我现在不十分关注表示层框架,但感觉有几个发展的方向:1。面向XX-比如流程,方面,对象等等,这些当然都各有各自的好处。2。利用某种页面技术整和常用方式(也叫不上模式),比如php,taglib。3。还有就好象是maverisk(所以说好象,是因为有些忘记了)可以组合很多中方式。

但在j2ee框架下,现在的感觉表示层的框架很明显。如果能选择的话还是struts好些。模式可参考《core j2ee patterns》最后章给出的例子。它的taglib我们可以选用常用的。从OO的角度来说,假如我们要实现X,那么X的行为就用taglib给它封装,X的属性就用特殊的技术来做,比如jscript or java ,etc。属性隐藏,我们只能发消息调用操作。所以我们需要学的技术也包括了解taglic,甚至需要做些自己常用的特殊的taglib,比如翻页。如果这样操作我想OO的特殊使能,封装性,继承性,多态性。。都能使用,你留意一下是不是现在的标签已经实现了?
还有一些特殊的功能,比如验证,授权,session等都可以用servlet中的过滤器技术实现。

谈到这我想剩下的就是熟练的程度了吧?当然,如果你能熟练的切换各种方式,比如某对象的属性,你用php替代某种方式来实现特殊功能,这可能就是maverisk的初衷吧。

jackyz举的cocoon例子,其实当你看看表示层模式之后你发现都是换汤不换药的。

对于框架,有人说,框架是人的骨架,模式是填充骨架的肉。而模式的形成来源于惯用法。惯用法就是我们平常书写代码时的一些规律。所以呢,我的感觉对于框架,我们还是远观之,而更多的重视惯用法和模式吧。框架就象分析模式一样,一定是有使用的不同情景的。要不为什么还会有什么层框架,MVC框架,管道框架??越高层抽象的东西越接近于理论,理论之上的抽象越接近于生活。不过能越过去的可能是没有人。所以还是多实际一些吧。

对于apache,banq说的对,现在的apache就象csdn,apache有sun支持,csdn总和微软有密切联系,都快腐化了都要为钱所迷失了技术的方向,自由的方向。不过这也没有办法,你能说csdn论坛里没有好文章么?没有能人么?不过拿csdn和apache比,还真太抬举它了。

Struts,Turbine,Avalon,Maverick 等apache 项目很多思想都很不错,如:cop,aop,sop等。
学习这些apache 项目,关键是学习其中的理念和思想

框架的重要性,不言自明,越是成型的产品,其框架也越成熟。
如果做项目,就要面临选择和使用的问题,这种答案是很难在论坛这种地方发现的。还是要根据自己的需要,自己的积累来决定,如果什么都不清楚,就选一个最常用的,这样出了问题寻求到答案的机会也大一些。
如果开发产品,没有什么实际经验,感觉上,还是离现有的框架近一些会好一些。
apache出了几个好用的东东之后,变得慢多了。这也是没有办法的事。
但说受sun影响,倒不如说apache企图影响sun更准确一些。我觉得这也没什么不好,至于“快腐化了都要为钱所迷失了技术的方向,自由的方向”呵呵,还没有看出来,比较迟钝吧。

框架的重要性,不言自明,越是成型的产品,其框架也越成熟。
如果做项目,就要面临选择和使用的问题,这种答案是很难在论坛这种地方发现的。还是要根据自己的需要,自己的积累来决定,如果什么都不清楚,就选一个最常用的,这样出了问题寻求到答案的机会也大一些。
如果开发产品,没有什么实际经验,感觉上,还是离现有的框架近一些会好一些。
apache出了几个好用的东东之后,变得慢多了。这也是没有办法的事。
但说受sun影响,倒不如说apache企图影响sun更准确一些。我觉得这也没什么不好,至于“快腐化了都要为钱所迷失了技术的方向,自由的方向”呵呵,还没有看出来,比较迟钝吧。

框架的重要性,不言自明,越是成型的产品,其框架也越成熟。
如果做项目,就要面临选择和使用的问题,这种答案是很难在论坛这种地方发现的。还是要根据自己的需要,自己的积累来决定,如果什么都不清楚,就选一个最常用的,这样出了问题寻求到答案的机会也大一些。
如果开发产品,没有什么实际经验,感觉上,还是离现有的框架近一些会好一些。
apache出了几个好用的东东之后,变得慢多了。这也是没有办法的事。
但说受sun影响,倒不如说apache企图影响sun更准确一些。我觉得这也没什么不好,至于“快腐化了都要为钱所迷失了技术的方向,自由的方向”呵呵,还没有看出来,比较迟钝吧。


听说: Cocoon、Struts和Turbine比较好。这三者各有所长,Cocoon是
最好的XML Framework,Struts是最好的JSP Framework,Turbine是最好的Servlet Framework


我想搞一个国人自己的框架-----CRANE,

定位于最好的SWING APPLICATION FRAME,同时支持WEB START和APPLET

大家觉得怎么样

用WEB START或是APPLET做CLIENT的人是不是非常非常少啊

有没有人想法且感兴趣,我们一起做

个人认为Tapestry很优秀,对逻辑与表示的分离做得最好。Tapestry完全是组件的概念,是完全的面向对象的,包括表示层,不像JSP、Velocity等模板技术,开发调试时比较困难。

if you like component, use Tapestry, require some learning curve
if you like template, use velocity, freemarker,maverick etc easy to go
if you like XML separation filter, use cocoon
if you like simplicity, use XWORK (WebWork2), hignly recommended.

if you like event driven, use Barracuda, JPublish
if you like Swing, use ECHO
for anybody else, use struts

JSF不是也不错么〉

听说: Cocoon、Struts和Turbine比较好。这三者各有所长,Cocoon是
最好的XML Framework,Struts是最好的JSP Framework,Turbine是最好的Servlet Framework


======================
turbine最好的还可以算上Service Framework,很不错的机制:)