struts2和dwr2都是屬于MVC的C,也就是控制器的作用,何必把兩種同種功能的框架整合起來使用,dwr可以直接使用dao,而action也是調用的dao,有時候dwr去用action是不是多次一舉啊?既然dwr調用action可以實現無刷新顯示,那為什么不去直接調用dao,還要去用struts2中的action?。侩y道就是用struts2中的攔截器功能嗎? 小弟一直對此問題很迷惑,還請高手明示!
2 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
dwr確實可以調用任何一層,但是一個項目,總得有層次的劃分,每一層干自己的事兒,一般來說,事務會包住dao層,假如你將要做的工作與事務提交有關,那么你直接調用dao,豈不是還得把事務下放到dao中去?可以是可以,但是破壞了程序的一致性,很難擴展和修改。
再者,dwr所做的任何操作,其實就是一個個action,只是說是ajax形式的,和跳轉連接在本質上差距不大。
至于你說的攔截功能,也有這方面考慮,試想,你action要是用攔截器來做了(或者過濾器)權限控制,你要是越過action,直接調用dao或service,那么你還非得重新編寫權限攔截是吧。 而且本質上,dwr可以直接調用dao其實是一個假象,它里面會自動給你弄個servlet,讓你看不到而已。
添加回答
舉報
0/150
提交
取消