引自:
http://kb.csdn.net/java/Articles/200507/fd779837-9a8d-448d-8ef9-b4c6ca501fb7.htmlhttp://blog.csdn.net/goldrain/WEB层是通过调用业务层来实现一次业务操作的。所以WEB是依赖业务层的实现的。如何解偶使两者能独立开发而互不影响?我倾向使用统一的调用接口:
使用一个命令字符串,加一堆DTO参数就能调用业务,然后取得DTO返回值。这里一个业务的调用就是一个命令的执行。Ofbiz的service engine就是这样的做法,而且很成功,这也是一种关注业务的理念。使用统一的调用接口,WEB层的开发就可独立进行了,不用依赖业务层就能进行编译。而且这种做法还带来了更多的好处:权限,日志都能集中管理;将来可能的话,分布式部署业务层也变得方便,因为所有业务都是一个命令接口调用。
MVC架构中,展示层View的技术是五花八门,可选择的太多太多,jsp可能是用的最多的,模版语言也多种多样,我分为两类:脚本模版和简单模版。而
简单模版的理念则是将页面逻辑从模版中抽取出来,模版只是用固定的布局展示数据,保证“所见即所得”的开发效果;
较复杂的web交互struts和webwork是如何做的
对付较复杂的交互,我一般让struts的formBean的scope设置为session,经过多次页面交互后,从这个组装好数据的formBean里获取业务需要的参数,然后调用业务层;
其中struts在每次映射值前能先运行reset,把需要清空的字段清空以便接受传进来的参数,而需要保持的数据就不用清空,感觉挺方便的;
然后在业务完成后,将session中的formBean清掉。
所以自我感觉作复杂的交互,使用session scope的formBean,struts还是挺管用的,因为这时的formBean能在用户页面交互时仍然能保持数据。我对webwork不很了解,大致看了些资料,里面没有formBean的概念,也就没有sesseion scope的概念了,不知webwork对保持客户端多次交互提交的数据,是否有方便的做法?
研究过了webwork,可以做到,而且更优雅:
使用ioc功能,将session中的对象映射到action属性中即可