關於Springmvc中include與Sitemesh裝飾器的基本使用


關於Springmvc中include與Sitemesh裝飾器的使用

  !!!轉載請注明出處=>http://www.cnblogs.com/funnyzpc/p/7283443.html

靜態包含:example:<%@include file="xxx.jsp"%>

  文件的包含是發生在 jsp向servlet轉換時期 ,相當於將jsp編譯成html靜態文件,由於對包含的文件不再編譯(直接拷貝到父頁面),則只產生一個class文件。

動態包含:example<jsp:include page="xxx.jsp">

  文件的包含是發生在編譯時期,也就是將java文件編譯為class文件的時期 ,由於每次訪問頁面都會對jsp(-->java)進行編譯(當做一個單獨的頁面進行編譯),遂會產生多個class文件。


一下將現身說法:

以上項目的目錄結構,包含文件和被包含文件屬同一個目錄=>

下面是訪問pbob.jsp(父頁面)后的效果,可以看到沒有對象訪問的情況下靜態包含和動態包含並沒有差別,內容可以正常包入,被包入的頁面的js也是正常執行的:

下面我將被包含的頁面都設置上值,在父頁面中訪問值,將值的作用域改成page,可以看到:動態包含的dd.jsp中的值無法在父頁面中被訪問到,而靜態包含的cc.jsp中的值可以被正常訪問:

 

以上只是jsp的簡單應用,如果是作為裝飾器,需要在被包含頁面設置值或賦值的時候一定要注意啦,說到裝飾器順便提一下sitemesh(現在是3.0版本),sitemesh是個很好用的裝飾器工具,

一個明顯的好處是不用像原生jsp那樣每個頁面都include,使用的時候直接在配置文件中設置需要用到的裝飾的頁面,比如banner、menu等等~,非常方便,一下展示下xml中的基本裝飾配置:

同一類別的頁面可以使用同一個裝飾頁面,當然也可以排除用哪些頁面, 目前需要注意到的是sitemesh在大容量頁面的裝飾的時候會比較耗內存,根據實際項目需求慎重選擇~,當然還有其他裝飾器也很不錯,這里就不一一介紹啦~

 

 


免責聲明!

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



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