這里要特別說明一下的是:就是Action這個類,上面已經(jīng)說到了它是Struts中真正干活的地方,也是值得我們高度關(guān)注的地方??墒?,關(guān)于它到底是屬于控制層還是屬于模型層,存在兩種不同的意見,一種認為它屬于模型層,如:《JSP Web編程指南》;另一些則認為它屬于控制層如:《Programming Jakarta Struts》、《Mastering Jakarta Struts》和《Struts Kick Start》等認為它是控制器的一部分,還有其他一些書如《Struts in Action》也建議要避免將業(yè)務邏輯放在Action類中,也就是說,圖3中Action后的括號中的內(nèi)容應該從中移出,但實際中確有一些系統(tǒng)將比較簡單的且不打算重用的業(yè)務邏輯放在Action中,所以在圖中還是這樣表示。顯然,將業(yè)務對象從Action分離出來后有利于它的重用,同時也增強了應用程序的健壯性和設(shè)計的靈活性。因此,它實際上可以看作是Controller與Model的適配器,如果硬要把它歸于那一部分,筆者更傾向于后一種看法,即它是Controller的一部分,換句話說,它不應該包含過多的業(yè)務邏輯,而應該只是簡單地收集業(yè)務方法所需要的數(shù)據(jù)并傳遞給業(yè)務對象。實際上,它的主要職責是: