亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

ModelAndView解析

系統 2100 0

?查看spring的幫助文檔得到下面信息:

org.springframework.web.servlet
Class ModelAndView

      
        
          
            java.lang.Object
          
        
      
      extended by 
      
        org.springframework.web.servlet.ModelAndView
      
    

          public class 
          
            ModelAndView
          
          
extends Object
      
        
      
    

Holder for both Model and View in the web MVC framework. Note that these are entirely distinct. This class merely holds both to make it possible for a controller to return both model and view in a single return value.

Class to represent a model and view returned by a handler used by a DispatcherServlet. The view can take the form of a reference to a View object, or a String view name which will need to be resolved by a ViewResolver object. The model is a Map, allowing the use of multiple data objects keyed by name.

Author:
Rod Johnson, Juergen Hoeller
See Also:
DispatcherServlet , ViewResolver , HandlerAdapter.handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object) , Controller.handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

Constructor Summary
ModelAndView ()
??????????Default constructor for bean-style usage: populating bean properties instead of passing in constructor arguments.
ModelAndView ( String ?viewName)
??????????Convenient constructor when there is no model data to expose.
ModelAndView ( String ?viewName, Map ?model)
??????????Creates new ModelAndView given a view name and a model.
ModelAndView ( String ?viewName, String ?modelName, Object ?modelObject)
??????????Convenient constructor to take a single model object.
ModelAndView ( View ?view)
??????????Convenient constructor when there is no model data to expose.
ModelAndView ( View ?view, Map ?model)
??????????Creates new ModelAndView given a View object and a model.
ModelAndView ( View ?view, String ?modelName, Object ?modelObject)
??????????Convenient constructor to take a single model object.
?
Method Summary
? ModelAndView addAllObjects ( Map ?modelMap)
??????????Add all entries contained in the provided map to the model.
? ModelAndView addObject ( String ?modelName, Object ?modelObject)
??????????Add an object to the model.
?void clear ()
??????????Clear the state of this ModelAndView object.
? Map getModel ()
??????????Return the model map.
protected ? Map getModelInternal ()
??????????Return the model map.
? View getView ()
??????????Return the View object, or null if we are using a view name to be resolved by the DispatcherServlet via a ViewResolver.
? String getViewName ()
??????????Return the view name to be resolved by the DispatcherServlet via a ViewResolver, or null if we are using a View object.
?boolean isEmpty ()
??????????Return whether this ModelAndView object is empty, i.e. whether it does not hold any view and does not contain a model.
?boolean isReference ()
??????????Return whether we use a view reference, i.e. true if the view has been specified via a name to be resolved by the DispatcherServlet via a ViewResolver.
?void setView ( View ?view)
??????????Set a View object for this ModelAndView.
?void setViewName ( String ?viewName)
??????????Set a view name for this ModelAndView, to be resolved by the DispatcherServlet via a ViewResolver.
? String toString ()
??????????Return diagnostic information about this model and view.

?

?

?收集自其它網頁:

?

ModelAndView 類別就如其名稱所看到的,是代表了Spring Web MVC程式中呈現畫面時所使用Model資料物件與View資料物件,因為Java程式中一次僅僅能返回一個物件,所以ModelAndView的作用封裝這兩個物件,以方便您一次返回Model與View這兩個物件。

最簡單的ModelAndView是持有View的名稱返回,之后View名稱被View resolver,也就是實作org.springframework.web.servlet.View介面的實例解析,比如 InternalResourceView或JstlView等等,最簡單的ModelAndView建構方式例如以下:

ModelAndView(String viewName)


假設您要返回呈現畫面時所需的Model資料物件,則能夠使用Map物件來收集呈現資料時所需的資料,然后在建構ModelAndView作為建構時的引數,您能夠使用以下這個版本號的ModelAndView建構方法:

ModelAndView(String viewName, Map model)


Map物件中設定好鍵(Key)與值(Value),之后能夠在要呈現的畫面中取出加以顯示(比如在JSP網頁中),假設您要返回一個Model資料物件并指定Model的名稱,則能夠使用以下這個ModelAndView版本號:

ModelAndView(String viewName, String modelName, Object modelObject)


藉由modelName,您能夠在要View的實作類別中取出Model資料物件,并依據View所使用的技術來加以顯示(可能是JSP網頁、Pdf等呈現技術)。

ModelAndView類別也提供實作View介面的物件來作為建構時的引數,下面是三個可用的建構方法版本號:

ModelAndView(View view)
ModelAndView(View view, Map model)
ModelAndView(View view, String modelName, Object modelObject)


一個實作View的實例例是org.springframework.web.servlet.view.RedirectView, ModelAndView預設是使用轉發(Forward)方式來完畢請求的結果畫面,使用RedirectView的話,則會使用又一次導向(Redirect)將請求重導至指定的結果畫面位置,以呈現請求的結果,比如:

...
public ModelAndView handleRequest(....) ... {
??? ...
??? return new ModelAndView(
????????????????????? new RedirectView(this.getViewPage()));
}
...


在這邊,viewPage所設定的位址要是從伺服器網頁根文件夾開始指定,而不是Web應用程式的根文件夾,所以您的getViewPage()傳回的位址必須像是/FirstSpringMVC/pages/index.htm這種位址,當中FirstSpringMVC是您的Web應用程式文件夾。

使用轉發(Forward)方式的話,網址列上并不會出現被轉發的目標位址,并且轉發方式是在Web應用程式之內進行,能夠訪問Web應用程式所設定的內部文件夾,像是WEB-INF文件夾,因而您能夠將一些要控管存取的資源放到WEB-INF下,如此使用者就無法直接請求這些資源,而必須透過 DispatcherServlet與Controller的處理與控管,才干夠取得這些資源,轉發方式僅僅能在Web應用程式中進行,不能指定至其他的 Web應用程式位址。

使用又一次導向(Redirect)的話,Web應用程式會要求client瀏覽器又一次發出一個所指定的請求位址,也就是實際上相當于client又一次連接至一個所指定的位址,因此瀏覽器的位址列上會出現被又一次導向的資訊,又一次導向的請求是由瀏覽器發出,所以不能訪問Web應用程式中的隱藏文件夾,像是WEB-INF,又一次導向是又一次要求一個網頁,所以能夠指定至其他的Web應用程式位址。

?

?DispatcherServlet會依據傳回的ModelAndView來解析View名稱,并處理給予的Model。

?

?View名稱的解析是托付給實作org.springframework.web.servlet.ViewResolver介面的實例,ViewResolver介面定義例如以下:

?public interface ViewResolver { public view resolveViewName( String , Locale locale) throws ServletException;? }

?

ViewResolver的一個實例是InternalResourceViewResolver,名稱解析完之后,實際的View繪制與Model轉換處理是交給實作org.springframework.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解析


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩精品中文字幕视频一区 | 久久麻豆视频 | 欧美日韩国产成人高清视频 | 成人不卡在线 | 亚洲视频中文字幕在线观看 | 亚洲精品国产美女在线观看 | 一级片免费在线 | chinese国产xxxx中国 | 国产成 人 综合 亚洲网 | 亚洲国产欧美日韩一区二区 | 综合久久久久6亚洲综合 | 国产高清在线a视频大全凹凸 | 国产成人香蕉在线视频fuz | 久久99精品国产99久久6男男 | 成年超爽大片免费视频播放 | 成人高清视频在线观看大全 | 四虎免费影院4hu永久免费 | 欧美视频第一区 | 大学生一级黄色片 | 亚洲精品久久99久久一 | 欧美午夜性刺激在线观看免费 | 天天草天天干 | 久久午夜综合久久 | 福利视频精品 | 久久久久综合精品福利啪啪 | 亚洲精品久久九九精品 | 亚洲高清视频在线观看 | 国产精品日韩欧美久久综合 | 一区二区三区免费视频 www | 久久99久久成人免费播放 | 亚洲日本人成网站在线观看 | 国产a免费| 在线视频欧美日韩 | 久久国产免费一区二区三区 | 99精品福利 | www午夜| 久久久精品| 天天操天天插天天干 | 成人午夜大片免费视频77777 | 很很鲁在线视频播放影院 | 久久久久久国产精品视频 |