標籤:targe framework tag 答案 page maven color pen doctype
如果jsp不使用繼承方式開發,而是用標準的指令或動作元素去include,實在是太多重複代碼。
rapid-framework是Google的一個項目,可以實現jsp網頁的繼承,也就是書寫模板頁。
但是在maven上的最新版本是4.0.5,最新維護時間是2011年,不知道是用的人實在不多,還是項目結束了,困惑中。。。所以關於jsp模板繼承還沒找到更簡單的方式。
這個讓我想到jstl標準標籤庫,也是最新維護時間2011年。是真的跟不上時代步伐,還是這些庫已經達到預期功能,所以不再維護了。一直困惑中,本人的原因對於長時間不維護的項目不是太敢用,網上也沒找到很好的答案(為什麼不再維護了)。
下面是rapid的maven地址:不過按照maven的方式添加依賴,會自動添加很多jar庫。
1 <!-- https://mvnrepository.com/artifact/com.googlecode.rapid-framework/rapid-core -->2 <dependency>3 <groupId>com.googlecode.rapid-framework</groupId>4 <artifactId>rapid-core</artifactId>5 <version>4.0.5</version>6 </dependency>
經過測試,直接下載rapid-core.jar單個檔案放在lib下也可。
模板頁的寫法:
1 <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %> 2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 4 <%@ taglib prefix="rapid" uri="http://www.rapid-framework.org.cn/rapid" %> 5 <!DOCTYPE HTML> 6 <html> 7 <head> 8 <rapid:block name="head"></rapid:block> 9 <link href="../css/common.css" rel="stylesheet">10 </head>11 <body>12 <div>13 <rapid:block name="body"></rapid:block>14 </div>15 <div>16 <rapid:block name="foot"></rapid:block>17 </div>18 </body>19 </html>
繼承頁面的寫法:
1 <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %> 2 <%@ taglib prefix="rapid" uri="http://www.rapid-framework.org.cn/rapid" %> 3 <rapid:override name="head"> 4 <title>登入</title> 5 </rapid:override> 6 7 <rapid:override name="body"> 8 <p>controller傳遞的值:${userName}</p> 9 </rapid:override>10 11 <jsp:include page="../index.jsp" flush="true"></jsp:include>
注意:include動作元素要放在最後,不能放在前面,否則不能正常工作。
rapid-core下載
jsp繼承rapid庫