springmvc中的視圖模型的返回方式


way1:略過;

way2:(神似way1)通過在方法的參數中添加一個Model類型的參數,,該參數由spring自動生成傳入,

然后在方法內部使用addAttribute()方式添加模型數據,

最后使用return返回一個視圖名稱(視圖的路徑),

從而在頁面上可以同時使用模型數據以及得到視圖頁面.

way3:當方法沒有返回值時,此時請求該方法的資源路徑將成為視圖的路徑,

    當時由於是直接從外部訪問,因此該方式無法訪問位於WEB-INF內的資源,同時資源也無法加上后綴名....不爽!!!

    具體如下圖:

    

      way 3中的問題的解決方案:在springmvc的包里面有一個DispatcherServlet.properties的文件,其中有

    org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver這一個配置,其為默認的視圖解析

    器,,此時我們需要對其進行自定義的配置,,由該視圖解析器對應的類InternalResourceViewResolver所繼承的父類UrlBasedViewResolver中有兩個前后綴的屬性,,我們在

    ApplicationContext中對此2個前后綴進行重新配置,將前綴自定義為WEB-INF,而后綴自定義為.jsp,,這樣在方法中返回的視圖名稱就只需寫中間的部分,即可正常訪問帶后

    綴名的文件資源了.具體配置如下圖:

    

    具體方法如下:

    

    以上仍然存在缺點:又如何訪問位於web-inf外部的資源,以及如何自定義資源的訪問方式是時轉發(forward)還是重定向(redirect)????

      解決方法:在每個資源視圖名稱前加上forward或redirect前綴,即可實現自定義是采用轉發還是重定向的方法方式....

      [注]:此時,后面的視圖名稱必須是一個完整的路徑..

      

      加redirect前綴的實例如下:

          此時,方法中不用Model類型的對象了,因為是重定向....也只能訪問web-inf外部的資源..

      

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM