多模塊項目之 - spring boot + gradle + 構(gòu)建公共jsp頁面的多模塊項目
標(biāo)題黨!!!!
烹制原理
Servlet 3.1 規(guī)范里 jar包中META-INF/resources/
下的文件會被視為根目錄文件進(jìn)行正常訪問 , 這也就意味著我們可以將某些 靜態(tài)頁面/圖片/樣式/js 等打到j(luò)ar包里當(dāng)做依賴jar包引用 , 像webjars
基本就是這么搞的.當(dāng)然 如果你在搞前后端分離、gulp急但、webpack什么的這種方式基本也不用考慮了。
Servlet 3.1 中文譯本 張開濤 翻譯版下載 > 點傳送門 <
- 引用.1
除了 靜態(tài)資源和 WEB-INF/lib 目錄下打包在 JAR 文件中 META-INF/resources 目錄下的 JSP 文件之外搬俊,WEB-INF 目錄下包含的其他任何文件都不能由容器直接提供給客戶端訪問。
serverlet 3.1 規(guī)范 - 10.5
- 引用.2
- 添加了從 JAR 文件中加載靜態(tài)資源和 JSP 的支持搀擂,其包含在綁定在 WEB-INF/lib 目錄中的 JAR 文件的 META-INF/resources 目錄中
變更歷史 A.3
烹制方法
- 添加spring boot 依賴,如果不想用變量定義版本號可以直接擼版本號
compile "org.springframework.boot:spring-boot-starter-web:${bootVersion}",
"org.apache.tomcat.embed:tomcat-embed-jasper:${tomcat_embed}"
- 編寫controller
@Controller
@Slf4j
public class TigerCtrl {
@RequestMapping("/")
public ModelAndView tiger(){
log.info("Soft kitty,warm kitty Little ball of fur .");
return new ModelAndView("tiger","words","Roar ~ Roar ~ ");
}
}
- 編寫頁面,當(dāng)然 這里的關(guān)鍵也就是本文的核心技術(shù)點就是要把頁面文件放到正確的位置即
src/main/resources/META-INF/resources
下,如果你是傳統(tǒng)項目那么META-INF應(yīng)該在webroot或者webcontent下,當(dāng)然這種非標(biāo)準(zhǔn)的目錄結(jié)構(gòu)會引申出另外一個問題那就是需要通過修改項目屬性指定webapp目錄.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<br/>
<br/>
<%
String words = String.valueOf(request.getAttribute("words"));
out.println("Tiger said : " + words);
%>
</body>
</html>
- 添加公共jsp頁面模塊依賴
compile project(":webpage")