论坛首页 Java企业应用论坛

Java Web层的下一个王者是谁?

浏览 58473 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-30  
JSF是事件驱动的、面向组件的WEB层框架,这个思想非常好。问题在于那些专家学者们没有用正确的行为实现优秀的思想。JSF的致命之处在于实现一个企业自己的HTML组件非常困难,门槛较高。你要写一大堆的代码、要修改Tag Lib的定义等等。如果这个你费了九牛二虎之力实现的组件,仅仅是某个客户的特殊要求,不具有复用的价值,那么是非常不值得的。同时,从哲学角度也能得出一个结论:任何一个JSF的实现,都不可能覆盖所有企业在未来开发中的需求。再同时,JSP和JSF具有完全不同的生命周期和处理过程,无法在一个页面中同时使用两个方案(为什么有这个要求:你可以在一个页面中的某个部分用JSF;另外的部分,也就是JSF无法实现的部分,比如一个需要用JSP代码生成的柱状图,用JSP实现)。综上,如果JSF在下面三个方面有一个方面可行,JSF就有生命力:
    1。开发一个个性化组件并部署到应用中,非常容易
    2。某个JSF的实现覆盖了企业未来开发中所有的UI组件需求(实际上,我觉得完全可以通过Template技术做到,但是目前还没有看到此类实现)
    3。在一个页面中,可以混合JSF和JSP编程。
    但是,遗憾的是,一个也不行。
0 请登录后投票
   发表时间:2007-04-30  
说到事件驱动的、面向组件技术,JSF远远比不上Tapestry4.0.2。
更加比不上Tapestry5.0。Tapestry5.0的组件可以动态加载的。修改之后也不用重启服务器。
0 请登录后投票
   发表时间:2007-04-30  
baccc 写道
JSF是事件驱动的、面向组件的WEB层框架,这个思想非常好。问题在于那些专家学者们没有用正确的行为实现优秀的思想。JSF的致命之处在于实现一个企业自己的HTML组件非常困难,门槛较高。你要写一大堆的代码、要修改Tag Lib的定义等等。如果这个你费了九牛二虎之力实现的组件,仅仅是某个客户的特殊要求,不具有复用的价值,那么是非常不值得的。同时,从哲学角度也能得出一个结论:任何一个JSF的实现,都不可能覆盖所有企业在未来开发中的需求。再同时,JSP和JSF具有完全不同的生命周期和处理过程,无法在一个页面中同时使用两个方案(为什么有这个要求:你可以在一个页面中的某个部分用JSF;另外的部分,也就是JSF无法实现的部分,比如一个需要用JSP代码生成的柱状图,用JSP实现)。综上,如果JSF在下面三个方面有一个方面可行,JSF就有生命力:
    1。开发一个个性化组件并部署到应用中,非常容易
    2。某个JSF的实现覆盖了企业未来开发中所有的UI组件需求(实际上,我觉得完全可以通过Template技术做到,但是目前还没有看到此类实现)
    3。在一个页面中,可以混合JSF和JSP编程。
    但是,遗憾的是,一个也不行。

1.部署很麻烦吗? 我不知道麻烦是指什么? 需要重启?还是什么?
2.JSF也没要求你要自己开发所有的组件阿?如果一个普通的input组件能满足要求,你就用阿,非要自定义吗?
3.什么叫JSP?怎么不能共存了? 没搞懂?这点实在听不懂了。

0 请登录后投票
   发表时间:2007-04-30  
个人比较喜欢Spring+Hibernate+Struts
0 请登录后投票
   发表时间:2007-04-30  
baccc 写道
JSF是事件驱动的、面向组件的WEB层框架,这个思想非常好。问题在于那些专家学者们没有用正确的行为实现优秀的思想。JSF的致命之处在于实现一个企业自己的HTML组件非常困难,门槛较高。你要写一大堆的代码、要修改Tag Lib的定义等等。如果这个你费了九牛二虎之力实现的组件,仅仅是某个客户的特殊要求,不具有复用的价值,那么是非常不值得的。同时,从哲学角度也能得出一个结论:任何一个JSF的实现,都不可能覆盖所有企业在未来开发中的需求。再同时,JSP和JSF具有完全不同的生命周期和处理过程,无法在一个页面中同时使用两个方案(为什么有这个要求:你可以在一个页面中的某个部分用JSF;另外的部分,也就是JSF无法实现的部分,比如一个需要用JSP代码生成的柱状图,用JSP实现)。综上,如果JSF在下面三个方面有一个方面可行,JSF就有生命力:
    1。开发一个个性化组件并部署到应用中,非常容易
    2。某个JSF的实现覆盖了企业未来开发中所有的UI组件需求(实际上,我觉得完全可以通过Template技术做到,但是目前还没有看到此类实现)
    3。在一个页面中,可以混合JSF和JSP编程。
    但是,遗憾的是,一个也不行。



Good!非常同意
抛开低层的技术实现不谈,一个框架的生命力,或者可接受程度很大程度上也取决与如何与现存的技术能够比较平滑的过度
我本人非常期待
1. JSF能与JSP混合编程(可能几乎不可能,JSF tag和JSP tag的生命周期和完成的功能都有很大区别),使老系统能够比较平滑的过度到JSF
2. MyFace整合和adface后能够统一开源的JSF实现,将tobargo,tomahawk,adface集成在一个实现中,提供更强大的组件类库
0 请登录后投票
   发表时间:2007-04-30  
libai 写道
简单举几条:

1、IE4的事件模型基本完善,事件种类和可发生事件的元素远多于NN4/5。
2、IE4可以真正的动态改变几乎所有的HTML元素,而NN4/5只是用LAYERs模拟出一些简单的动态效果,并非真正的DHTML。
3、IE4的TextRange可控制性远好于NN4/5。
4、IE4独有数据岛绑定元素,这是早期富客户端实现的重要技术之一。
5、IE4的Filters/Transitions效果和可script操作性都比NN4/5强不少。

例子可能没有直观的说服力,你只要将ie4和nn4/5的API Refrence手册摆在一起,数数它们的页数,就可以将它们分出高下了。

IE4对于DHTML的支持更好,这个我同意你的观点,也同意这个是使得Netscape4退出市场的一个非常重要的因素。不过现在争论这些大约10年前的技术已经没有很大的意义。

我反对你的一个观点是,你似乎认为将来Web表现层无论何时都应该前推到浏览器端来做,由浏览器端的JavaScript来完全控制用户的整个工作流程。这种解决方案其实是一类“one-size-fits-all”的解决方案。

我曾经与朋友讨论过,在什么场合下,事件模型必需要放在服务器端来处理?因为WPF和Apollo等RIA技术可以把事件模型完全放在客户端,与用户相关的状态也完全保存在客户端。我们经过讨论之后,认为其实还是有一些场合需要在服务器端处理事件模型的,当然状态也保存在服务器端。所以还是要具体问题具体分析。

另外你的方案完全用JavaScript来控制用户的整个工作流程,假如用户的浏览器不支持JavaScript,整个应用就会完全失效,或者需要对应用的架构做很大的改动。这种情况确实是存在的,前几天在一个活动上我遇到一位朋友,他们就需要用同一套Web应用同时支持桌面电脑的浏览器和各种手机的浏览器。手机中的浏览器仅支持WML,完全不支持JavaScript,更不用说XMLHttpRequest。他们是在服务器端使用Struts+XSLT来解决的这个问题。另外,一些浏览器的插件(例如Firefox有一个插件叫做“NoScript”)会将浏览器对于JavaScript的支持禁止掉。同时支持各种能力不同的浏览器叫做“Graceful Degradation”,做到这一点,可以提供更好的Web可用性。有一种Ajax应用的开发过程叫做Hijax,可以很好地支持“Graceful Degradation”,开发出来的Ajax应用即使在不支持JavaScript的浏览器中也不会影响到基本的功能,只是退化为一个传统的Web应用。这种技术在即将出版的Bulletproof Ajax中文版中有介绍。
0 请登录后投票
   发表时间:2007-04-30  
java 的东西很多。公司说了算。
0 请登录后投票
   发表时间:2007-04-30  
要是有个框架能实现JSP的继承就好了。
这个应该是能实现的,本来servlet是可以继承的
0 请登录后投票
   发表时间:2007-04-30  
to dlee:

同意你的大部分观点,RIA不可能适用所有的应用场合,这点我也意识到了,比如需要搜索引擎友好的内容服务页面(比如CMS阅读端),就不适合用RIA技术实现。

对这个:

dlee 写道

...前几天在一个活动上我遇到一位朋友,他们就需要用同一套Web应用同时支持桌面电脑的浏览器和各种手机的浏览器。。。



除非应用本身非常简单,我认为这个要求有问题:手机的屏幕大小、输入接口限制决定了它不能胜任复杂界面应用,要一套应用同时支持pc与手机,其结果只能是简化pc下的UI操作,影响桌面用户的工作效率。比如哪天javaeye要同时支持手机用户,我估计站长们一定会单独为手机设计一个前端,而且一般也不会提供目前桌面版本的所有功能。


补几句:想起来某些大厂商所反复宣传的,它们的Portal系统如何先进,能为不同的客户终端配置同一个应用的不同界面,对此我一直都认为是很无聊的忽悠,一笑了之。客户很多时候基于感性认识一个产品,而我们作为开发者应该比客户思考得更多。
0 请登录后投票
   发表时间:2007-05-03  
to leebei
   RIA其实可以对搜索引擎友好的,微软的SilverLight就可以,因为是纯xml不须编译的,这也是微软的一个卖点。
   adobe的flex目前不行,但以后可能也会增加这方面的支持。
   openLaszlo可以生成swf,DHTML,等多种目标文件,你如果选择生成DHTML,问题也就不存在了。

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics