Java Web框架标准化必要性探讨
java的web框架
java的web框架众多的原因在于java的web框架只在servlet一层提供了标准,没有进而再往上作标准。因此,每个web框架都建立自己基于servlet之上的各种不同标准。
struts1使用Struts制订的Action接口
webwork,struts2使用Model和Action同一Action接口
Spring的Controller...
Cetia4的RestServlet...
...
这些web框架有一个基本的假设:开发者编写的Action要必须继承于各自框架的基类。
到此就完了,如果各自的框架要求开发者要继承自己的基类,这还不会出现“百花齐放”那才奇怪了。
这样的Web框架最后都会被抛弃(隐藏在底层):
开发者就应该像开发中间层业务逻辑那样开发Web Action,Pure Web Action,不需要继承Servlet,不需要继承特有的Action对象。
Pure Web Action
web处理对象应该不需要显示继承Servlet,不需要继承框架特有基类,我将这样的web对象称为Pure Web Action,或POJO Action,它的好处是:
1、学习成本几乎为零
如下编写普通的Java代码有何成本可言?
这是ProductAction的代码,它只和Servlet相关,我们看不出它采用什么Web框架:
问题是,
1、你如何将返回的List<User>给客户端,这不成了RPC?
2、我们在哪里指定返回的页面名称,还需要什么配置?插件?
3、一个method根据情况返回不同时,比如成功返回某某具体对象,
失败返回errorCode,这如何做到(或者说没有必要做,交给拦截器去做?)
4、。。。
问题是,
1、你如何将返回的List<User>给客户端,这不成了RCP?
2、我们在哪里指定返回的页面名称,还需要什么配置?插件?
3、一个method根据情况返回不同时,比如成功返回某某具体对象,
失败返回errorCode,这如何做到(或者说没有必要做,交给拦截器去做?)
4、。。。
是的,RCP,客户端这样的:
var ds = new RemoteDataSet("xxxAction.friends");
var list = new XXXList(ds);
ds.load();
除在spring context中配置action外,没有别的配置了。
31 楼 javafarseer 2007-11-29 框架只是软件的半成品,半成品到成品还是有很多路要走的,
我就看到williamy的whitesand不错,struts1都很方便 32 楼 gof95 2007-11-29 并非一切都能隐藏在底层,定义出这个标准Action层往往就意味着已经有选择了
比如例子中的action,如果把user作为类变量,在struts2下没有问题,在struts1 without spring有问题 33 楼 neptune 2007-12-05 spring 2.5提供新的基于源注释的mvc框架,与你提出的要求基本吻合。