看了论坛里一篇文章, 很有些启发:
[url]http://www.iteye.com/topic/93984[/url]让Struts 1焕发青春----小议对Struts的改造
经过改造之后,struts也变成跟struts2有些类似:
1. action的方法参数中没有了request, response, 剥离了跟web容器的耦合, 于是变得能够方便测试。
2. action方法能够支持返回string, 比起actionforward显然要简单得多。
ok,看到这里, 会发现还是少了一个struts2很好的特性,就是pojo直接注入action和页面直接获取pojo, 正是由于这个特性struts2没有了form, 利用interceptor可以很好的完成pojo的自动组装以及属性转型。
struts如果要实现这个, 则需要对源代码进行修改了, 首先pojo作为了action的实例变量,就不能再是单例的。 再者还要像struts2那样引入ognl。这个步骤的改造代价就比较高了, 而且form当中包含pojo也没有麻烦多少, 通过struts的tag同样能在页面上方便获取。如果真要改这个, 就不如直接struts2了。 :wink:
[url]http://www.iteye.com/topic/93984[/url]让Struts 1焕发青春----小议对Struts的改造
经过改造之后,struts也变成跟struts2有些类似:
1. action的方法参数中没有了request, response, 剥离了跟web容器的耦合, 于是变得能够方便测试。
2. action方法能够支持返回string, 比起actionforward显然要简单得多。
ok,看到这里, 会发现还是少了一个struts2很好的特性,就是pojo直接注入action和页面直接获取pojo, 正是由于这个特性struts2没有了form, 利用interceptor可以很好的完成pojo的自动组装以及属性转型。
struts如果要实现这个, 则需要对源代码进行修改了, 首先pojo作为了action的实例变量,就不能再是单例的。 再者还要像struts2那样引入ognl。这个步骤的改造代价就比较高了, 而且form当中包含pojo也没有麻烦多少, 通过struts的tag同样能在页面上方便获取。如果真要改这个, 就不如直接struts2了。 :wink: