大家好,我是IT修真院上海分院第3期學員,一枚正直善良的java程序員,今天給大家分享一下,修真院java任務中的一個知識點:Tiles框架使用。
首先Tiles框架主要是為了創建可重用的組件。怎么理解呢,這里的組件指的是jsp代碼,很多時候比如3個jsp文件中會出現相同的header或body或footer,那么這就造成了代碼重復,而通過Tile框架可將3個頁面中相同的header和footer分離出來放到一個jsp中作為組件以達到重用的目的。
下面貼代碼解說,我有2個jsp,這兩個頁面中的header(首部)和footer(底部)都是一致的如下圖:
修真院官網絕大多數頁面的首部和底部都和上圖中的一致,如果每個頁面都把首部和底部寫一遍會造成大量的 重復代碼,因此比較好的做法是使用Tiles框架將可重用的部分分離出來形成一個組件。
下面是分離的首部和底部代碼:
footer.jsp,該jsp文件中是2個頁面共有的底部分離出來的代碼:
header.jsp,該jsp文件同樣是2個頁面共有的首部分離出來的代碼:
至此,已將兩個頁面中共有的部分分離出來了,分離出來以后肯定是要進行重組形成一個新的頁面的。首部和底部有了,那么還缺一個body部分,而body部分兩個頁面是不同的,因此需各自定義<body>的jsp文件。
兩個頁面分別是首頁和職業介紹頁面,兩個頁面中的首部和底部都相同如上所述。home.jsp是首頁的<body>部分,IntroductionJob.jsp是職業介紹頁面的<body>部分。
上面已經講解了如何進行分離,下面講講如何進行重組形成一個新的jsp頁面。
maven配置依賴:
<dependency>
? ?<groupId>org.apache.tiles</groupId>
? ?<artifactId>tiles-extras</artifactId>
? ?<version>3.0.7</version>
</dependency>
<dependency>
? ?<groudId>org.apache.tiles</groudId>
? ?<artifactId>tiles-servlet</artifactId>
? ?<version>3.0.7</version>
</dependency>
<dependency>
? ?<groudId>org.apache.tiles</groudId>
? ?<artifactId>tiles-jsp</artifactId>
? ?<version>3.0.7</version>
</dependency>
在SpringMvc配置文件中配置Tiles視圖解析器,視圖解析器是為了解析controller返回的值來匹配路徑來找到對應的jsp的。
tiles配置文件tiles.xml(可隨意),放置在WEB-INF目錄下
上圖中的name為templet的是基礎模板,并給這個模板填充了header和footer。然后name為*.page的從templet繼承,同樣擁有了header和footer,并添加了body部分,最終形成了一個擁有header,body,footer的jsp頁面。其中values="/jsp/{1}.jsp/中的{1}是獲取*匹配的內容,因為我的controller處理完畢返回了一個home.jsp,因此Tiles框架視圖解析器起作用找到該Tiles的定義并重組頁面形成新的jsp并將model交給該jsp處理,該jsp渲染視圖完畢后返回。
下圖是基礎模板:
在tiles配置中給基礎模板填充了footer和header會自動將footer.jsp和header.jsp中的內容拼接到該模板中,然后*.page從模板繼承又是另一個jsp,并填充了body部分就形成了一個填充了header,footer,body的新頁面。
今天的分享就到這里啦,歡迎大家點贊、轉發、留言、拍磚~
技能樹.IT修真院“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷?!?。
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧~我的邀請碼:16318412,或者你可以直接點擊此鏈接:http://www.jnshu.com/login/1/16318412