关于struts2
表现层框架我最熟悉的是struts1,而且是和jdon结合使用的,最近在看struts2,不明白为什么它要引入package,extends,namespace,这三个元素真的很有用吗?很有用为什么其他的表现层框架没有类似的做法。
BTW:向大家推荐一个表现层框架 :vraptor,个人非常喜欢,使用picocontainer自动装配,使用起来有seam的感觉.
表现层框架我最熟悉的是struts1,而且是和jdon结合使用的,最近在看struts2,不明白为什么它要引入package,extends,namespace,这三个元素真的很有用吗?很有用为什么其他的表现层框架没有类似的做法。
BTW:向大家推荐一个表现层框架 :vraptor,个人非常喜欢,使用picocontainer自动装配,使用起来有seam的感觉.
struts2我没有去学,因为以前学过webwork,也看了xwork的代码,我说下我基于webwork的理解。
那个package主要就是为了让我们可以模块化配置action,package可以基础父package,这样在子package里就有可以使用父package的配置,至于那个namespace,主要是在访问的url上作用。要想访问指定命名空间里的action,在url上要加上相应的namespace.
对于模块化,strut1的做法就已经够用了,比如jivejdon的模块化Action:
struts-config-admin.xml
struts-config-forum.xml
struts-config-message.xml
struts-config-security.xml
总觉得extends,nmaespace是额外增加了复杂性,真的很有必要吗?
不过表现层框架也引入拦截器我个人非常喜欢!!
[该贴被oojdon于2008-12-20 09:23修改过]
呵呵,拦截器确实我也喜欢,还有表达式语言ONGL的引入,使得表单和模型之间赋值绑定以及类型转换都比较好。有点不好的地方就是每次请求都产生一个Action对象,不过目前JVM优化了GC算法,这样还减轻性能损失,不过每次请求一个Action的好处就是Action可以不考虑线程安全性,struts1的Action是单例的,所以还要考虑线程安全性呵呵,总之有得必有失吧。
>>struts1的Action是单例的,所以还要考虑线程安全性
听说struts1的action还是池化了的,注意把它搞成无状态就行了,线程这个东西我不太敢碰,需要时间,现在我确定我玩不转!
[该贴被oojdon于2008-12-20 13:13修改过]
线程 是一个成熟的应用系统中无法避免的概念,所以在这一点上一定需要理解,不然只能将能力局限在很小的范围内了。
structs我不熟悉,仅发表一些个人的理解。package,extends,namespace这样的概念基本上是成熟的开发语言所必需具备的特性,具有了这些才能够建立比较大型的模型结构,如果structs在此方面进行了扩展那么说明他不再只是期望用于简单的UI开发了,他希望成为一套更高级、可以建成更大规模系统的开发平台。
>>package,extends,namespace这样的概念基本上是成熟的开发语言所必需具备的特性
很关键,但是这是程序设计语言的特性,和框架无关,框架为什么要额外引入?难道struts2的定位就是代码巨量的大型项目?呵呵。
不知道banq大大的意见是什么,J2EE开发代码很多的时候是否需要框架支持package,extends,namespace?
其实我现在不知道package,extends,namespace在struts2中怎么用,看过别人的代码,头大!
[该贴被oojdon于2008-12-20 13:09修改过]
|
可以参考一下这篇文章 http://www.javaeye.com/topic/6529