jsp母版頁組裝


自組裝方法大致如下:把整個頁面的內容划分到各個不同的視圖組件中,顯示頁面本身的責任是包含這些視圖組件,並以正確的方式構建完整的HTML響應。顯示頁面負責頁面的組裝過程。采用母版頁組裝方法時,顯示頁面就變成了包含在該母版頁的整個響應中的另一個內容片段。如圖3-6所示,現在母版頁擔負起組裝的責任,並且它要定義整個頁面的結構和布局。

 
圖3-6  自組裝與母版頁組裝的比較

從概念上來看這很簡單,但站點中不同的顯示頁面如何使用同一個母版頁呢?母版頁又如何知道應該引入哪個顯示頁面呢?

運用這種技術的訣竅是,在母版頁中加入一條可以在頁面運行時執行的<jsp:include>動作指令,以引入正確的內容頁面。<jsp:include>動作指令有兩種基本形式。第一種形式使用靜態定義的頁面名稱:

  1. <jsp:include page="/Home.jsp"/> 

 

第二種形式使用運行時表達式定義頁面名稱:

  1. <jsp:include page="<%= variablename %>"/> 

 

這種把運行時表達式作為頁面名稱的形式為在多個顯示頁面之間共享同一個母版頁提供了一種簡單可行的方法。最簡單的用法是,Master.jsp頁面先查找具體的請求參數page,然后動作指令以page為參數把正確的頁面放到母版頁完整模板的顯示區域中:

  1. ...  
  2. <% String pagename = request.getParameter("page"); %> 
  3. ...  
  4. <body> 
  5. <table> 
  6. ...  
  7. <% try { %> 
  8. <jsp:include page="<%= pagename %>"/> 
  9. <% }  
  10. catch (IOException e) {  
  11. %> 
  12. <jsp:include page="Blank.jsp"/> 
  13. <% } %> 
  14. ...  
  15. </table> 
  16. </body> 

 

接下來,使用由母版頁名稱和一個帶有顯示頁面名稱的查詢字符串組成的URL來訪問每一個顯示頁面。例如,http://servername:port/Master.jsp?page=Home.jsp就會調用Master.jsp母版頁,同時指出了要引入頁面的名稱是Home.jsp。頁面中的超鏈接同樣可以使用這樣的語法來指定URL:

  1. <A HREF="Master.jsp?page=ViewProperty.jsp">...</A> 

現在我們就可以在不觸及任何顯示頁面的前提下,通過修改一個獨立的頁面Master.jsp來改變整個站點的外觀。這些改變可以包含頁面結構的整體重新布局、所包含視圖組件的添加或刪除以及其他所期望的改變。


免責聲明!

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



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