1.SpringBoot系列-初識SpringBoot
標簽: springboot spring
1.創建SpringBoot工程
1.1通過IDEA構建SpringBoot工程
新建工程,選擇如圖選項,下一步
選擇所需要的組件,下一步,結束即可。
1.2通過網站構建SpringBoot工程
Spring項目初始化
https://start.spring.io/
生成工程,下載壓縮包,解壓導入即可。
2.最簡單的HelloWorld
打開http://127.0.0.1:8080/即可看到HelloWorld。
3.參數解析
繼續追加如下代碼:
@RequestMapping(value = "/profile/{groupId}/{userId}")
@ResponseBody
public String profile(@PathVariable("groupId") String groupId,
@PathVariable("userId") int userId,
@RequestParam(value = "type", defaultValue = "1") int type,
@RequestParam(value = "key", defaultValue = "nowcoder") String key) {
return String.format("{%s},{%d},{%d},{%s}", groupId, userId, type, key);
}
這個就是前臺傳過來的PathVariable、RequestParam,我們后臺用如上注解進行接收并打印。
4.使用velocity模板(相當于傳統開發的Jsp)
繼續追加
@RequestMapping("news")
public String news() {
return "news";
}
新建vm模板文件
5.后臺傳參到前臺
@RequestMapping("news")
public String news(Model model) {
model.addAttribute("value1", "vv1");
return "news";
}
通過model來添加屬性,velocity前臺通過 $!{value1}就可以拿到參數了。
下面我們來學習一些常用velocity語法,更多自行百度谷歌或者官方:https://velocity.apache.org/engine/devel/user-guide.html。
6.Velocity模板語法
一、$!{ 變量/表達式 }
二、## 注釋 ## #* 多行注釋 *#
三、for循環:
#foreach ($color in $colors)
Color$!{foreach.count}/${foreach.index}:$!{color}
#end
四、屬性訪問
$!{user.name}
$!{user.getName()}
五、模板繼承
include 純文本擴展
parse 變量解析
六、macro
#macro (render_color, $color, $index)
This is Color $index:$color
#end
#foreach ($color in $colors)
#render_color($color, $foreach.index)
#end
7.結合例子學velocity語法
7.1 List
后端:
List<String> colors = Arrays.asList(new String[]{"RED", "GREEN", "BLUE"});
model.addAttribute("colors", colors);
前端:
#foreach ($color in $colors)
Color $!{foreach.index}/$!{foreach.count}: $!{color}
#end
Color 0/1: RED
Color 1/2: GREEN
Color 2/3: BLUE
7.2 Map
Map<String, String> map = new HashMap<String, String>();
for (int i = 0; i < 4; ++i) {
map.put(String.valueOf(i), String.valueOf(i * i));
}
model.addAttribute("map", map);
兩種方法遍歷map,與java語法類似
#foreach($key in $map.keySet())
Number $!{foreach.index}/$!{foreach.count}: $!{key} $map.get($key)
#end
#foreach($kv in $map.entrySet())
Number $!{foreach.index}/$!{foreach.count}: $!{kv.key} $!{kv.value}
#end
7.3 類
public class User {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
public User(String name) {
this.name = name;
}
}
model.addAttribute("user", new User("Jim"));
User:$!{user.name}
User:$!{user.getName()}
7.4 模板繼承
ps:set用于設置屬性
#set($title = "nowcoder")
Include: #include("header.vm") <br>
Parse:#parse("header.vm")
訪問顯示如下”
Include: Title $!title
Parse:Title nowcoder
我們可以知道include是包含,parse是包含還會進行解析。
智能推薦
【SpringBoot系列01】初識SpringBoot
一、介紹 想必大家都一定用過spring框架,每次整合spring框架的時候總是會有無窮無盡的xml配置文件,第一次寫配置文件的時候,大家還會抱著學習的心態認真讀每一個配置,但是當我們每次在構建項目都要寫同樣的配置文件大家應該會覺得厭煩,盡管只是復制粘貼。那么現在你就不用擔心了,使用springboot讓你更簡單的構建spring應用。 springboot讓我們更加簡單快速的構建spring應用...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
猜你喜歡
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...
styled-components —— React 中的 CSS 最佳實踐
https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...