本文目錄一覽:
- 1、Java中ModelAndView是做什麼的?
- 2、java中的Model1和Model2有什麼區別
- 3、java開發時為什麼要dao和service都是model層嗎?
- 4、java的MVC,其中Model模型是什麼?
- 5、java中bean類,action類,model類,util類,dao等的作用是什麼啊?
- 6、java model層作用是什麼?
Java中ModelAndView是做什麼的?
ModelAndView以org.springframework.ui.ModelMap的形式來保持模型數據,通過構造方法傳入的或者通過實例方法添加的模型數據都將添加到這個ModelMap中。至於ModelMap中保持的模型數據將會在視圖渲染階段,由具體的View實現類來獲取並使用。
我們需要為添加到ModelAndView的一組或者多組模型數據提供相應的鍵(Key),以便具體的View實現類可以根據這些鍵獲取具體的模型數據,然後公開給視圖模板。通常,模型中的數據對應的鍵需要與視圖模板中的標誌符相對應,如圖所示:
基於JSP/JSTL模板的視圖實現,通常是將模型數據通過HttpServletRequest的屬性(Attribute)的形式公開給具體的模板。而像基於Velocity之類的通用模板引擎的視圖實現,則會將ModelAndView中的模型數據複製到它們自己的數據獲取上下文中,比如Velocity的Context。
但不管什麼視圖類型,對應的視圖模板都將可以通過添加到ModelAndView的模型數據的鍵來獲取模型數據,併合併到最終的視圖輸出結果中。
拓展資料:
ModelAndView 的構造方法有7個。但是它們都是相通的。這裡使用無參構造函數來舉例說明如何構造ModelAndView 實例。
ModelAndView 類別就如其名稱所示,是代表了MVC Web程序中Model與View的對象,不過它只是方便您一次返回這兩個對象的holder,Model與View兩者仍是分離的概念。
最簡單的ModelAndView是持有View的名稱返回,之後View名稱被view resolver,也就是實作org.springframework.web.servlet.View介面的實例解析,例如 InternalResourceView或JstlView等等。
ModelAndView(String viewName) 如果您要返回Model對象,則可以使用Map來收集這些Model對象,然後設定給ModelAndView,使用下面這個版本的 ModelAndView: ModelAndView(String viewName, Map model) Map對象中設定好key與value值。
之後可以在視圖中取出,如果您只是要返回一個Model對象,則可以使用下面這個 ModelAndView版本: ModelAndView(String viewName, String modelName, Object modelObject) 藉由modelName,您可以在視圖中取出Model並顯示。
web.servlet.View的實例,View介面如下: public interface View { public void render(Map model, HttpServletResquest resquest, HttpServletResponse response) throws ServletException, IOException; }
View的實作之前用過 org.springframework.web.servlet.view.InternalResourceView,另外也還有JstlView、 TilesView、VelocityView等等的實作,分別進行不同的表現展處理 。
ModelAndView() 這個構造方法構造出來的ModelAndView 不能直接使用,應為它沒有指定view,也沒有綁定對應的model對象。當然,model對象不是必須的,但是view確實必須的。 用這個構造方法構造的實例主要用來在以後往其中加view設置和model對象。
給ModelAndView 實例設置view的方法有兩 個:setViewName(String viewName) 和 setView(View view)。前者是使用view name,後者是使用預先構造好的View對象。
其中前者比較常用。事實上View是一個介面,而不是一個可以構造的具體類,我們只能通過其他途徑來獲取 View的實例。對於view name,它既可以是jsp的名字,也可以是tiles定義的名字,取決於使用的ViewNameResolver如何理解這個view name。
如何獲取View的實例以後再研究。 而對應如何給ModelAndView 實例設置model則比較複雜。有三個方法可以使用: addObject(Object modelObject) addObject(String modelName, Object modelObject) addAllObjects(Map modelMap) ModelAndView 可以接收Object類型的對象,ModelAndView 將它視為其眾多model中的一個。
當使用Object類型的對象的時候,必須指定一個名字。ModelAndView 也可以接收沒有明顯名字的對象,原因在於ModelAndView 將調用spring自己定義的Conventions 類的.getVariableName()方法來為這個model生成一個名字。
java中的Model1和Model2有什麼區別
Model1:
Model1的中心是JSP頁面,JSP頁面中結合業務邏輯、服務端處理過程和HTML等,這樣就在JSP頁面中同時實現了業務邏輯和流程式控制制。從而快速開發。
Model1的優缺點:
優點:簡單,快速開發,適用小規模開發;
缺點:業務邏輯和表示邏輯混合在JSP頁面中沒有進行抽象和分離,JSP負載太大。所以非常不利於應用系統業務的重用和改動,不便於維護。
Model2:
Model
2表示的是基於MVC模式的框架。MVC
「Model」代表的是應用的業務邏輯(通過JavaBean,EJB組件實現),「View」是應用的表示面(由JSP頁面產生),
「Controller
」是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。從而彌補了Model1的不足。
Model2其實是在Model1基礎上又抽了一層控制層。
Model2優缺點:
優點:具有組件化的優點從而更易於實現對大規模系統的開發和管理。職責劃分清晰。
缺點:不適合小項目開發。
java開發時為什麼要dao和service都是model層嗎?
dao和service不是model層。學習java開發推薦千鋒教育。千鋒教育培訓業務分為大學生技能培訓和職後技能培訓,為學生的學習保駕護航。
dao是數據訪問層。DAO(Data Access Object) 數據訪問對象是第一個面向對象的介面。service是業務層,負責所有的業務邏輯處理。model屬於數據實體模型。和資料庫的數據欄位是基本對應的,model也可以增加一些資料庫沒有的虛擬欄位,幫助處理業務。這樣分層的好處是降低程序耦合度。
想要了解更多有關java開發的相關信息,推薦諮詢千鋒教育。千鋒教育成立教研學科中心,推出貼近企業需求的線下技能培訓課程。採用全程面授高品質、高體驗培養模式,學科大綱緊跟企業需求,擁有國內一體化教學管理及學員服務,在職業教育發展道路上不斷探索前行。
java的MVC,其中Model模型是什麼?
model層指實體層,寫資料庫的增刪改查操作,view層指視圖層,就是寫前端的頁面,controller層是負責前端界面與實體層進行交互,寫具體的方法,即界面要使用那些實體
java中bean類,action類,model類,util類,dao等的作用是什麼啊?
bean類:是一些實體類,包括viewbean,databean等等。
action類:可作為接收顯示層的數據,連接顯示層和業務邏輯實現層的控制層。
model類:MVC中model層就是到層。在java中無特殊含義就是模塊。
util類:工具類
dao:資料庫操作類。對資料庫進行曾刪改查等操作
java model層作用是什麼?
mvc這個常用的模式。v是視圖,很快就知道了view。
c是Controller,控制器,就是接受請求返回請求的東西,都不包含邏輯處理。調用model的東西進行邏輯處理。
所以model層就是邏輯處理層。
當然分層的好處是低耦合等
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237817.html