- 浏览: 633336 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
liuche20083736:
非常好
从问题看本质: 研究TCP close_wait的内幕 -
xiaopohai85707:
优化算法与原来需求不符
过滤字符的性能调优?挤一挤还是有的 -
kmy_白衣:
生成的area图有时候 标签的数值和图标上看上去的数值不一致。 ...
OpenFlashChart2之恶心文档 -
tom&jerry:
大神,请教一个问题,按名称排序为何无效,用的2.4.3 XPA ...
深入浅出jackrabbit之十三 查询之AST和QT -
jd2bs:
改成精确匹配可以了< filter-mapping &g ...
细谈Ehcache页面缓存的使用
/**
*作者:张荣华(ahuaxuan)
*2007-06-25
*转载请注明出处及作者
*/
让webwork零配置 第二章(实例已放出,大家可以下载运行)
又到周末了,平时没有时间,所以我的主要学习时间是放在周末,让大家久等了,上个周末说到webwork2零配置的第一章,很多人积极参与讨论,给出了很多有用的参考意见,在这里先谢谢大家,当然也有其他意见的也能理解,我想原因可能有以下几点:
1毕竟在公司里选择一个web层框架是一个重要重大的决定,很多人都是身不由己,这种经历我想大家都有过。
2正如抛出异常的爱所说,这是一个快餐型社会,很多人都比较喜欢吃快餐(现实生活中也是如此,从肯德鸡和麦当劳的红火的生意就可以看出来了),大家都比较喜欢立刻能看到效果的那种,而不是大篇赋的讲解。
3很多人对web框架没有兴趣,现在有那么多web框架,为什么要选easywebwork呢。
其实扩展webwork2只不过是闲暇之余的一个消遣,或者说是一个兴趣(每个人都有自己的兴趣),并不是让观者去把它用在项目中(当然如果你乐意那么也可以),而是一种学习的过程,不是学习使用webwork2这个框架,而是学习框架背后所隐藏的思想,不是为了框架而框架,是为了学习而框架,webwork2中包含了很多设计模式,其代码风格等等都是可以学习的,当然我说的学习并不是单纯的模仿,我说的学习是:择其善者而从之,其不善者改之。因为我相信,webwork2的思想绝对在webwork2被实现之前就产生了。在这里我还要举个例子,之前我经常看到有人说struts(1.x系列)的代码如何烂如和糟糕,是这样的吗,绝对不是,我不是替struts辩护什么的,struts的代码没有什么糟糕不糟糕之说,不被大家称道的其实是struts框架背后的思想,正是这种思想导致了struts的不优雅,这才是正真的原因。
在重新考虑之后,我决定主要讲解原理,代码就不讲解了,因为吃大餐比较花时间,所以就改请大家吃快餐了。
附件是扩展后的webwork2的一个例子,在这个例子中,action中的方法都使用了annotation,而xwork.xml中的配置只有那些common的配置,明显改变了很少,而在action中,我们也能够一眼就看出来这个方法将要返回的页面,不需要再去xwork.xml中找了,呵呵。
首先讲一下这个例子是作什么的,这是一个登陆的简单例子,登陆正确后就到一个编辑页面,登陆失败后回登陆页面并且显示失败信息。
让我们来看看改造后的webwork的配置是如何简单吧,以下是xwork.xml的配置
是的,一个action只有这么多配置,那么其他的配置去什么地方了呢,其他配置都搬到了action中了,让我们来看一下action中的片断:
就这么简单,和原来的使用基本没有什么区别,不同的就是把result的配置搬到类中,使用了annotation来实现(如果不理解请看第一篇文章),公共的配置放到xwork.xml中,而都有的配置,比如说result的配置就使用annotation来实现,这样有以下几个优点:
1, xwork.xml简化了非常之多,改造后,每个action只需要配置一行代码,假设你的项目中有50个action,那么只需要在xwork.xml加50行这样的配置就可以了,而没有改造之前的话,有多少代码就难以估计了。
2, 每一个action中的方法执行的返回结果都能一幕了然,根本无需再到xwork.xml中找result的定义了,维护起来也更方便了。试想有50个action的项目,然后又分了模块,有不同的xwork.xml,那么你要找到某个action的某个方法所返回的result那是多费力的一件事啊。
环境:
我在开发这个实例的时候使用的tomcat6.0和jdk6.0,而webwork使用的2.2.2的版本。
如果没有看过第一章的话最好也看一下
第一章的地址为:http://ahuaxuan.iteye.com/admin/show/91614
附件中附带扩展webwork2的源代码和可以执行的一个例子程序。
作者:张荣华,未经作者同意不得随意转载!
不过,感觉annotation也有一个不好的地方,修改一下配置必须从源代码开始。必须从新编译。
这个问题如果是在开发的时候就不是问题了,反而是一个优点,不需要重新加载配置文件,就能修改result。但是在部署之后如果要改动就是一个缺点了,因为必须要重新编译了
我更倾向于通过他生成xml配置,部署的时候可以适当修改而不必改动源代码。
这个想法不错,开发的时候用annotation,清晰,直观,部署的时候用生成的xml。修改方便
想法确实很棒,开发的时候不用去配置XML,部署的时候生成XML,这样维护也方便。
不过,感觉annotation也有一个不好的地方,修改一下配置必须从源代码开始。必须从新编译。
这个问题如果是在开发的时候就不是问题了,反而是一个优点,不需要重新加载配置文件,就能修改result。但是在部署之后如果要改动就是一个缺点了,因为必须要重新编译了
我更倾向于通过他生成xml配置,部署的时候可以适当修改而不必改动源代码。
这个想法不错,开发的时候用annotation,清晰,直观,部署的时候用生成的xml。修改方便
annotation我没用过,不过以前一直用xdoclet做代码和配置文件的生成,和你的观点相反。
我觉得更具相关性集中定义最大的好处就是维护体来方便,东西查找起来比较方便。同步修改比较方便。
不过,感觉annotation也有一个不好的地方,修改一下配置必须从源代码开始。必须从新编译。
我更倾向于通过他生成xml配置,部署的时候可以适当修改而不必改动源代码。
对于ww转向struts2这件事情,心里真有点不是滋味。
以前也有类似的想法,只是被JSI缠身,所有的事情都被迫放下了,楼主好好干吧,口头上支持一把。
这个是struts2的标准用法吗,之前人们给出的例子都是没有这样用的,所以我才去扩展,不过看来思想都是一样的,只是手段不一样,我之所以去扩展是为了学习和研究xwork,因为下一步我要做的就是基于xwork2.0做一个貌似于rest风格的mvc框架(如果我有时间的话)。另外我很不喜欢struts2.0,这个挂羊头卖狗肉的家伙,它包括了太多东西,很多人都反应它的慢,所以我根本就没有兴趣去学习它了
很多问题第一章已经有过讨论了。
http://ahuaxuan.iteye.com/admin/show/91614
再次声明:本文的主要目的在于学习和研究,关键是你能否提出你的想法
1,提出想法
2,实现想法
*作者:张荣华(ahuaxuan)
*2007-06-25
*转载请注明出处及作者
*/
让webwork零配置 第二章(实例已放出,大家可以下载运行)
又到周末了,平时没有时间,所以我的主要学习时间是放在周末,让大家久等了,上个周末说到webwork2零配置的第一章,很多人积极参与讨论,给出了很多有用的参考意见,在这里先谢谢大家,当然也有其他意见的也能理解,我想原因可能有以下几点:
1毕竟在公司里选择一个web层框架是一个重要重大的决定,很多人都是身不由己,这种经历我想大家都有过。
2正如抛出异常的爱所说,这是一个快餐型社会,很多人都比较喜欢吃快餐(现实生活中也是如此,从肯德鸡和麦当劳的红火的生意就可以看出来了),大家都比较喜欢立刻能看到效果的那种,而不是大篇赋的讲解。
3很多人对web框架没有兴趣,现在有那么多web框架,为什么要选easywebwork呢。
其实扩展webwork2只不过是闲暇之余的一个消遣,或者说是一个兴趣(每个人都有自己的兴趣),并不是让观者去把它用在项目中(当然如果你乐意那么也可以),而是一种学习的过程,不是学习使用webwork2这个框架,而是学习框架背后所隐藏的思想,不是为了框架而框架,是为了学习而框架,webwork2中包含了很多设计模式,其代码风格等等都是可以学习的,当然我说的学习并不是单纯的模仿,我说的学习是:择其善者而从之,其不善者改之。因为我相信,webwork2的思想绝对在webwork2被实现之前就产生了。在这里我还要举个例子,之前我经常看到有人说struts(1.x系列)的代码如何烂如和糟糕,是这样的吗,绝对不是,我不是替struts辩护什么的,struts的代码没有什么糟糕不糟糕之说,不被大家称道的其实是struts框架背后的思想,正是这种思想导致了struts的不优雅,这才是正真的原因。
在重新考虑之后,我决定主要讲解原理,代码就不讲解了,因为吃大餐比较花时间,所以就改请大家吃快餐了。
附件是扩展后的webwork2的一个例子,在这个例子中,action中的方法都使用了annotation,而xwork.xml中的配置只有那些common的配置,明显改变了很少,而在action中,我们也能够一眼就看出来这个方法将要返回的页面,不需要再去xwork.xml中找了,呵呵。
首先讲一下这个例子是作什么的,这是一个登陆的简单例子,登陆正确后就到一个编辑页面,登陆失败后回登陆页面并且显示失败信息。
让我们来看看改造后的webwork的配置是如何简单吧,以下是xwork.xml的配置
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"> <xwork> <include file="webwork-default.xml"/> <package name="default" extends="webwork-default"> <action name="userAction" class="org.easy.test.action.UserAction"/> </package> </xwork>
是的,一个action只有这么多配置,那么其他的配置去什么地方了呢,其他配置都搬到了action中了,让我们来看一下action中的片断:
@ResultListAnnotation(results = { @ResultAnnotation(name="SUCCESS", template="/editUser.htm"), @ResultAnnotation(name="ERROR", template="/editUser.htm")}) public String editUser(){ System.out.println(name); return SUCCESS; } @ResultListAnnotation(results = { @ResultAnnotation(name="SUCCESS", template="/editUser.htm"), @ResultAnnotation(name="ERROR", template="/login.htm")}) public String login(){ if ("test".equalsIgnoreCase(name) && "test".equalsIgnoreCase(password)) { return SUCCESS; } else { errorMsg = "the name and password are not right!!"; return ERROR; } }
就这么简单,和原来的使用基本没有什么区别,不同的就是把result的配置搬到类中,使用了annotation来实现(如果不理解请看第一篇文章),公共的配置放到xwork.xml中,而都有的配置,比如说result的配置就使用annotation来实现,这样有以下几个优点:
1, xwork.xml简化了非常之多,改造后,每个action只需要配置一行代码,假设你的项目中有50个action,那么只需要在xwork.xml加50行这样的配置就可以了,而没有改造之前的话,有多少代码就难以估计了。
2, 每一个action中的方法执行的返回结果都能一幕了然,根本无需再到xwork.xml中找result的定义了,维护起来也更方便了。试想有50个action的项目,然后又分了模块,有不同的xwork.xml,那么你要找到某个action的某个方法所返回的result那是多费力的一件事啊。
环境:
我在开发这个实例的时候使用的tomcat6.0和jdk6.0,而webwork使用的2.2.2的版本。
如果没有看过第一章的话最好也看一下
第一章的地址为:http://ahuaxuan.iteye.com/admin/show/91614
附件中附带扩展webwork2的源代码和可以执行的一个例子程序。
作者:张荣华,未经作者同意不得随意转载!
- EasywebworkSample.rar (3.2 MB)
- 下载次数: 702
评论
11 楼
lonelyblue
2007-11-01
ahuaxuan 写道
jindw 写道
不过,感觉annotation也有一个不好的地方,修改一下配置必须从源代码开始。必须从新编译。
这个问题如果是在开发的时候就不是问题了,反而是一个优点,不需要重新加载配置文件,就能修改result。但是在部署之后如果要改动就是一个缺点了,因为必须要重新编译了
jindw 写道
我更倾向于通过他生成xml配置,部署的时候可以适当修改而不必改动源代码。
这个想法不错,开发的时候用annotation,清晰,直观,部署的时候用生成的xml。修改方便
想法确实很棒,开发的时候不用去配置XML,部署的时候生成XML,这样维护也方便。
10 楼
samy_3
2007-11-01
干脆直接返回哪个模版文件好了:
return "login.ftl";
return "login.ftl";
9 楼
gkm422
2007-09-27
研究中,谢谢搂猪了,呵呵·~~
8 楼
fireflyc
2007-08-14
我最近一直在开发一个新的web框架~最初的想法是以正则表示匹配URL,采用annotation做配置。但是现在我放弃了annotation~~因为采用这种方式就失去了配置文件的作用,你更改配置必须重新编译程序,更要命的是你在反射annotation的时候效率执行的效率非常的低~~。你可以试一下~。
还看到有朋友想设计REST风格的框架,和我的想法一样~~我以前也是想采用xwork,但是我后来也是放弃了~~原因也很简单~我如果采用正则表达式匹配URL,那么action里面最好的情况下是有参数的~而不是无参数的。这个我还在摸索中~~~
希望和更多的朋友交流一下~firefireflyc@126.com
还看到有朋友想设计REST风格的框架,和我的想法一样~~我以前也是想采用xwork,但是我后来也是放弃了~~原因也很简单~我如果采用正则表达式匹配URL,那么action里面最好的情况下是有参数的~而不是无参数的。这个我还在摸索中~~~
希望和更多的朋友交流一下~firefireflyc@126.com
7 楼
guocy
2007-07-20
从礼貌上支持一下楼主,因为是新手,就不在关公面前耍大刀了,希望LZ多听听大家的意见,永远支持你!
6 楼
ahuaxuan
2007-07-03
jindw 写道
不过,感觉annotation也有一个不好的地方,修改一下配置必须从源代码开始。必须从新编译。
这个问题如果是在开发的时候就不是问题了,反而是一个优点,不需要重新加载配置文件,就能修改result。但是在部署之后如果要改动就是一个缺点了,因为必须要重新编译了
jindw 写道
我更倾向于通过他生成xml配置,部署的时候可以适当修改而不必改动源代码。
这个想法不错,开发的时候用annotation,清晰,直观,部署的时候用生成的xml。修改方便
5 楼
jindw
2007-07-03
atianchen 写道
不太赞成将转向的页面名称直接通过annotation标识在代码里面,这样做的弊病很多,如果项目很大,action类很多,直接把result标记在代码里维护量也一样少不了
特别是用如果页面部分采用了portal或则工作流驱动的页面生成,
不过各人有各人的用法,
同楼上,支持楼主一把
特别是用如果页面部分采用了portal或则工作流驱动的页面生成,
不过各人有各人的用法,
同楼上,支持楼主一把
annotation我没用过,不过以前一直用xdoclet做代码和配置文件的生成,和你的观点相反。
我觉得更具相关性集中定义最大的好处就是维护体来方便,东西查找起来比较方便。同步修改比较方便。
不过,感觉annotation也有一个不好的地方,修改一下配置必须从源代码开始。必须从新编译。
我更倾向于通过他生成xml配置,部署的时候可以适当修改而不必改动源代码。
4 楼
atianchen
2007-07-02
不太赞成将转向的页面名称直接通过annotation标识在代码里面,这样做的弊病很多,如果项目很大,action类很多,直接把result标记在代码里维护量也一样少不了
特别是用如果页面部分采用了portal或则工作流驱动的页面生成,
不过各人有各人的用法,
同楼上,支持楼主一把
特别是用如果页面部分采用了portal或则工作流驱动的页面生成,
不过各人有各人的用法,
同楼上,支持楼主一把
3 楼
jindw
2007-07-02
ahuaxuan 写道
。。。。
因为下一步我要做的就是基于xwork2.0做一个貌似于rest风格的mvc框架(如果我有时间的话)。另外我很不喜欢struts2.0,这个挂羊头卖狗肉的家伙,它包括了太多东西,很多人都反应它的慢,所以我根本就没有兴趣去学习它了
因为下一步我要做的就是基于xwork2.0做一个貌似于rest风格的mvc框架(如果我有时间的话)。另外我很不喜欢struts2.0,这个挂羊头卖狗肉的家伙,它包括了太多东西,很多人都反应它的慢,所以我根本就没有兴趣去学习它了
对于ww转向struts2这件事情,心里真有点不是滋味。
以前也有类似的想法,只是被JSI缠身,所有的事情都被迫放下了,楼主好好干吧,口头上支持一把。
2 楼
ahuaxuan
2007-06-25
yingqing 写道
http://struts.apache.org/2.x/docs/result-annotation.html
struts2的标准用法
struts2的标准用法
这个是struts2的标准用法吗,之前人们给出的例子都是没有这样用的,所以我才去扩展,不过看来思想都是一样的,只是手段不一样,我之所以去扩展是为了学习和研究xwork,因为下一步我要做的就是基于xwork2.0做一个貌似于rest风格的mvc框架(如果我有时间的话)。另外我很不喜欢struts2.0,这个挂羊头卖狗肉的家伙,它包括了太多东西,很多人都反应它的慢,所以我根本就没有兴趣去学习它了
很多问题第一章已经有过讨论了。
http://ahuaxuan.iteye.com/admin/show/91614
再次声明:本文的主要目的在于学习和研究,关键是你能否提出你的想法
1,提出想法
2,实现想法
1 楼
yingqing
2007-06-25
http://struts.apache.org/2.x/docs/result-annotation.html
struts2的标准用法
struts2的标准用法
发表评论
-
过滤字符的性能调优?挤一挤还是有的
2010-05-29 05:54 3545/* *auth ... -
Master-Slave,Spring,Hibernate,故事曲折离奇,情结跌宕起伏
2009-02-05 13:49 8586/** *作者:张荣华 *日期 ... -
弃成见,反省,并重新认识struts.i18n.encoding
2008-12-24 15:42 3786[size=medium]之前和大家讨论了struts2.0中 ... -
关键字:查询,事务,粒度
2008-08-22 17:05 5042[size=medium]/** *作者: ... -
看看mina和memcached的联姻(适合不同语言客户端,高并发?)
2008-07-21 17:06 7892[size=medium]/** * 作者:张荣华 * 日 ... -
如何解决mysql的master-slave模式中ReplicationDriver的使用问题
2008-06-19 18:23 8172/** * 作者:张荣华 * 日期:2008-6-19 ... -
别装了,难道你们不想把properties直接注入到object中去(spring-plugin)?
2008-04-09 18:01 3592[size=small]/** *作者:张荣华(ahuaxu ... -
用jamon来监控你的sql执行效率
2008-02-25 15:48 3666/** *作者:张荣华 *日期:2008-2-25 ... -
java同msn的通信,大家想想用途吧
2007-11-24 17:14 2485程序员的生活真是单调,除了编程还是编程,工作日 ... -
EAI企业应用集成场景及解决方案
2007-09-21 18:21 3120/** *作者:张荣华(ahuaxuan) *2007-9 ... -
quartz和应用的集群问题
2007-08-21 18:36 12736之前看到很多关于quartz的讨论,尤其是关于quar ... -
优化程序之前,可用Jamon来监测你的Spring应用
2007-08-14 18:14 8013/** *作者:张荣华(ahuaxuan) *2007-8-1 ... -
请问责任链真的是一种设计模式吗
2007-07-26 18:12 9315坛子上讨论设计模式的也挺多的,但是关于这个责任链模式还没有人提 ... -
把ActiveMQ的控制台整合到你的web程序中
2007-07-19 12:06 8727在使用ActiveMQ的时候把ActiveMQ的控制台整 ... -
设计模式之:解剖观察者模式
2007-07-17 16:12 6815[size=9] 论坛上很多人都 ... -
java邮件:在简单和复杂之间的方案
2007-07-11 18:07 7557/** *作者:张荣华(ahuaxu ... -
强强连手, 在模板中分页,看Freemarker和displaytag的结合
2007-07-09 09:22 6885/** *作者:张荣华(ahuaxuan) *2007-0 ... -
解惑:在spring+hibernate中,只读事务是如何被优化的。
2007-06-28 18:22 7577/** *作者:张荣华(ahuaxuan) *2007- ... -
让webwork2零配置,第一章(主贴再次更新)
2007-06-18 15:41 13238/** *作者:张荣华(ahuaxuan) *2007-0 ... -
Spring声明式事务管理源码解读之事务提交
2007-06-11 09:19 7255/** *作者:张荣华(ahuaxuan) *2007-0 ...
相关推荐
包括webwork2.x的 具体使用步骤,见解压后“webwork使用步骤.txt” 和一个实现前后台连通的webwork具体应用的“test” 实例,将test导入eclipse的工作空间,即可正常运行
WebWork2配置WebWork2配置WebWork2配置WebWork2配置
webwork 简单实例,一个简单入门的webwork实例 在myEclipse7.0运行
webwork源码下载
Webwork+spring+hibernate集成实例
webwork+spring+ibatis很适合初学者的实例
WEBWORK的配置
webwork配置详解
webwork+spring+hibernate入门实例,使用mysql数据库,建一个名为imti的数据库,把数据库文件导入数据库 把imti文件直接导入myeclipse
详细介绍了,webwork2的配置及action映射,验证框架等,里面有jar包,源代码
webwork in action_第1部分-WebWork简介_第2章-WebWork方式的Hello World
一个关于webwork登录的实例,导入myeclipse即可运行
Spring+Webwork+iBatis 组合实例.txt
webwork底层源码,用于webwork框架设计
webwork-2.2.5源码包下载
webwork框架xwork.xml、web.xml这两个文件让你可以随意过滤自己想要过滤的某些namespace命名空间下的.action、.jsp、*。
WebWork教程-0.90版 PPT教材 实例 根据文档做的实例,相应的tld jar都在里面
webwork+ibatis+sqlserver完整实例 数据的添加、删除、修改、查询、分页、附件上传
webwork简单实例及说明详细地将如何部署Webwork,如何搭建开发webwork的环境,webwork到工作原理与工作流程详细地做了讲解,只要自己动手将小例子做一遍,肯定能够掌握初步的开发技术。希望能对各位有所帮助!
webWork配置包括xwork.xml及web.xml的配置