一、關於靜態資源的訪問css
在咱們開發Web應用的時候,須要引用大量的js、css、圖片等靜態資源。html
Spring Boot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合以下規則:java
/staticweb
/publicspring
/resources apache
/META-INF/resourcesjson
好比:咱們能夠在src/main/resources/目錄下建立static,在該位置放置一個圖片文件。啓動程序後,訪問http://localhost:8080/xx.jpg。springboot
二、渲染web頁面app
在以前的示例中,咱們都是經過@RestController來處理請求,因此返回的內容爲json對象。那麼若是須要渲染html頁面的時候,要如何實現呢?jsp
咱們能夠用模板引擎
在動態HTML實現上Spring Boot依然能夠完美勝任,而且提供了多種模板引擎的默認配置支持,因此在推薦的模板引擎下,咱們能夠很快的上手開發動態網站。
Spring Boot提供了默認配置的模板引擎主要有如下幾種:
Spring Boot建議使用這些模板引擎,避免使用JSP,若必定要使用JSP將沒法實現Spring Boot的多種特性,具體可見後文:支持JSP的配置
當你使用上述模板引擎中的任何一個,它們默認的模板配置路徑爲:src/main/resources/templates。固然也能夠修改這個路徑,具體如何修改,可在後續各模板引擎的配置屬性中查詢並修改。
下面介紹下 使用FreeMarker模板應請渲染web視圖
首先建立maven工程,pom文件以下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>springboot-frameworker</groupId> <artifactId>com.toov5.frameworker</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> </dependencies> </project>
Java類
package com.toov5.frameworker; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class index { @RequestMapping("/index") public String show(Map<String, Object> map){ map.put("name", "toov5"); map.put("age","20"); map.put("sex","0"); return "index"; } }
啓動類:
package com.toov5.frameworker; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class app { public static void main(String[] args){ SpringApplication.run(app.class, args); } }
而後建立freemarker文件
目錄結構以下:
其中freemarker的名字後綴和路徑默認最好這樣哈,內容以下所示:
hello frameworker, ${name}*****${age}
啓動項目,而且訪問:
成功之,是否是很好玩呀~~關於freemaker的語法你們本身找個博客或者相應的教程看看吧,很簡單。重在實踐喲
PS:有小夥伴問 註解@RestController和@Controller區別
1) 若是隻是使用@RestController註解Controller,則Controller中的方法沒法返回jsp頁面,或者html,配置的視圖解析器 InternalResourceViewResolver不起做用,返回的內容就是Return 裏的內容。
2) 若是須要返回到指定頁面,則須要用 @Controller配合視圖解析器InternalResourceViewResolver才行。
若是須要返回JSON,XML或自定義mediaType內容到頁面,則須要在對應的方法上加上@ResponseBody註解。
1.使用@Controller 註解,在對應的方法上,視圖解析器能夠解析return 的jsp,html頁面,而且跳轉到相應頁面
若返回json等內容到頁面,則須要加@ResponseBody註解
2.@RestController註解,至關於@Controller+@ResponseBody兩個註解的結合,返回json數據不須要在方法前面加@ResponseBody註解了,但使用@RestController這個註解,就不能返回jsp,html頁面,視圖解析器沒法解析jsp,html頁面
so,你能夠試試,把咱們這個小項目中的 註解替換下 ,你看看頁面返回的啥子,本身體會下哈
順便說起一下:
classPath是與編譯後的字節碼有關的目錄