Struts與MVC分層理解

2022-03-12 18:18:07 字數 1597 閱讀 9340

**:

今天參加了乙個面試,面試中問到上述問題,我當時也很納悶,就蒙了v層,回來後在網上搜到的資訊如下:

問題:請教大俠在struts中的mvc2設計模式中的二個小問題,能不能給個標準的答案?謝謝!

這些天我學習struts的mvc2設計模式,有些問題不同的教程有不同的回答啊!把我搞糊塗了啊!請教大俠在struts中的mvc2設計模式中的二個小問題,能不能給個標準的答案?謝謝!

1.actionform 類和action 類這二個實現業務邏輯功能的類到底是歸到c層(controller,也就是控制器層)還是歸到m層(model,也就是模型層),還是v層(view,檢視層)?(孫衛琴的書中好像還把actionform 類歸到了v層了啊!把人都搞糊塗了啊!)

2.如果把action 類按有的教程上說的應該歸到c層,那在struts中不是沒有m層了嗎?那m層又是些什麼啊?(我看了《struts in action中文版》這本書的第乙個struts入門register的小例子,如果把registeraction 類歸到了c層,那這程式中不是沒m層了嗎?)  

回答1:

1.actionform 我認為應該是歸到v層,它的作用只是暫時存放http請求的資料,並沒有涉及到任何的業務邏輯。

2.我現在正在學著用struts開發乙個專案,看了struts的乙份文件,覺得struts中的主controller是actionservlet在struts-config.xml中配置,用來控制全域性,而action顧名思義,動作,應該是從controller。因為首先,v層產生http請求,是先由actionservlet接收,然後在xml檔案中查詢相對應的url,然後再由對應的action類處理具體的資料。

3.在struts的一些入門例子中,確實不一定需要對應的m層。m層的作用是封裝資料。

回答2:actionform是v層,負責與jsp之間傳遞資料,校驗資料。action是c,控制器,它只是負責呼叫業務物件,呼叫m層的方法,然後**。

m層是對資料操作的方法,通常會是一些實體bean,也包括業務邏輯操作,當然在m層里尼還可以再分層

回答3:actionform屬於v層,暫時儲存jsp表單資料,&到達action前對field做驗證

action屬於c控制層,它只是負責呼叫m層的方法,然後**到相應的頁面或action。

其實struts本身是沒有提供真正的m層的。

回答4:actionform是檢視層的,它只是在中間傳遞資料而已,嚴格來說,action並不能完全歸入控制層,因為可以直接把控制邏輯寫在action裡面,它對於actionservlet起到乙個排程分流的作用,

其實根據孫衛琴的觀點,action是位於c和v之間的,我非常同意這個觀點,struts並沒有實現model的規範,作為乙個mvc框架,我覺得也沒有這個必要,因為作為乙個開發者,他面對最多的將是model層,可以自由發揮,由action呼叫就行料,用ejb還是hibernate都沒有關係。

你看看struts就知道了,actionservlet只是攔截料客戶的請求,加以解析,讀取配置檔案,根據form呼叫呼叫配置的相應的action,你看源**就會很清楚了。

RGB與HSV的深層理解 詳細

最近準備研究計算機視覺領域,那麼處理和人臉識別是其中乙個模組,今天在學習opencv的時候,了解了乙個新的模型hsv顏色模型,他與rng色彩模型是一樣的東西,之前了解一些rgb顏色模型,但是我覺得自己沒有完全真正明白rgb到底是怎樣決定顏色的變化的,包括什麼是hsv。深層理解rgb 什麼是hsv 灰...

MVC與MVVM的理解

mvc,mvp,mvvm是三種常見的前端架構模式,通過分離關注點來改進 組織方式。mvc模式是mvp,mvvm模式的基礎,這兩種模式更像是mvc模式的優化改良版,他們三個的mv即model,view都是相同的,不同的是mv之間的橋梁連線部分。本文是對的乙個總結。mvc允許在不改變檢視的情況下改變檢視...

MVC與MTV的理解與區別

mvc model view controller 模型 檢視 控制器 是一種web架構的模式。特點 把業務邏輯 模型資料 使用者介面分離開來,讓開發者將資料與表現解耦。model 代表資料訪問層,view代表的是系統中選擇顯示什麼和怎麼顯示的部分,controller指的是系統中根據使用者輸入並視...