如何在SpringBoot+Freemarker中獲取項(xiàng)目根目錄
在Freemarker中獲取項(xiàng)目根目錄
好多人 都說:
在配置文件中加入
spring.freemarker.request-context-attribute=request
在頁面就可以
<#assign ctx=request.contextPath />
但是發(fā)現(xiàn)前臺(tái)依然為 null(可能是我的配置有問題)
后來發(fā)現(xiàn)可以這樣使用
<#assign ctx=springMacroRequestContext.contextPath />
不需要多余的配置


在Freemark模板引擎路徑的幾種設(shè)置方法
在SpringMVC中我們想返回視圖是怎么做的
(1)SpringMVC中當(dāng)我們想解析jsp視圖的時(shí)候需要在spring.xml中有如下的配置

在SpringBoot中springboot不推薦我們使用jsp模板
向我們提供了freemark模板模板引擎來解析視圖
1.在SpringBoot中如果我們沒進(jìn)行任何配置那么我們只需要在resources目錄下創(chuàng)建一個(gè)templates文件夾舉個(gè)例子。
(1).創(chuàng)建一個(gè)Controller類返回名稱為first的視圖

(2).在resource目錄下創(chuàng)建一個(gè)名為first.ftl的文件(SpringBoot默認(rèn)解析文件類型為ftl的文件)

(3)first.ftl中的內(nèi)容

(4)請(qǐng)求結(jié)果

從上面的結(jié)果可以看出freemark為我們完成了視圖解析
那么如果我們?nèi)绾巫远xfreemark的模板引擎路徑呢
有兩種方式
第一種方式:
1.在resource目錄下創(chuàng)建一個(gè)application.properties文件,SpringBoot在啟動(dòng)加載時(shí)會(huì)找到resource目錄下的
application.properties文件,代碼如下

(1)這里劃紅線的倆個(gè)點(diǎn)是需要注意的,對(duì)于suffix我們應(yīng)該非常熟悉因?yàn)樵谥芭渲胘sp視圖解析器的時(shí)候就用到過,是視圖解析的文件類型(springboot中默認(rèn)的解析文件類型是ftl,而我們將文件類型更改為fid格式)
(2)template-loader-parh也不難理解就是配置解析視圖的路徑
(3)目錄結(jié)構(gòu)

2.application.properties配置完成后我們看一下效果

以上就是如何通過application.properties配置修改freemark返回路徑
第二種方式:
1.創(chuàng)建Java類繼承WebMvcConfigurerAdapter
代碼如下

目錄結(jié)構(gòu)

運(yùn)行結(jié)果

以上就是通過倆種方式配置freemark返回路徑
ps:在反復(fù)測(cè)試freemark返回路徑的過程中發(fā)現(xiàn)了很有意思的幾點(diǎn)感興趣的可以深入研究一下
(1)springboot如果沒配置application.properties文件或者沒創(chuàng)建工作類的時(shí)候我們都知道默認(rèn)返回ftl格式文件,但是如果我們通過工具類改變freemark路徑我們會(huì)發(fā)現(xiàn),雖然我們配置了返回fap類型的文件,但是當(dāng)我們把fap改成ftl文件之后,freemark仍然可以解析
(2)通過application.properties文件改變freemark返回路徑的話,只能解析application.properties設(shè)置的文件類型,ftl是無效的
(3)如果同時(shí)加載application.properties文件和工具類的話,工具類的權(quán)重比較高,freemark會(huì)返回工具類中的配置,但是在第一點(diǎn)我說過如果光使用工具類的話freemark是可以返回ftl格式文件的,但是如果application.properties文件和工具類都進(jìn)行啟動(dòng)的話ftl就無效了
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Springboot整合Freemarker的實(shí)現(xiàn)詳細(xì)過程
- springboot整合freemarker代碼自動(dòng)生成器
- Springboot整合freemarker和相應(yīng)的語法詳解
- Springboot整合FreeMarker的實(shí)現(xiàn)示例
- SpringBoot整合Freemarker的基本步驟
- springboot整合freemarker的踩坑及解決
- SpringBoot整合freemarker實(shí)現(xiàn)代碼生成器
- SpringBoot整合FreeMarker的過程詳解
- SpringBoot結(jié)合FreeMarker視圖渲染的實(shí)現(xiàn)
相關(guān)文章
java實(shí)現(xiàn)簡(jiǎn)單的圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
java圖片滑動(dòng)驗(yàn)證(登錄驗(yàn)證)原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了java圖片滑動(dòng)驗(yàn)證(登錄驗(yàn)證)原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了java圖片滑動(dòng)登錄驗(yàn)證的相關(guān)原理、實(shí)現(xiàn)方法與操作技巧,需要的朋友可以參考下2019-09-09
spring security國際化及UserCache的配置和使用
這篇文章主要介紹下國際化的配置及UserCache的配置及使用教程,感興趣的朋友參考下實(shí)現(xiàn)代碼吧2017-09-09
Spring高階用法之自定義業(yè)務(wù)對(duì)象組件化
這篇文章主要介紹了Spring高階用法之自定義業(yè)務(wù)對(duì)象組件化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
SpringBoot中的JPA(Java?Persistence?API)詳解
這篇文章主要介紹了SpringBoot中的JPA(Java?Persistence?API)詳解,JPA用于將?Java?對(duì)象映射到關(guān)系型數(shù)據(jù)庫中,它提供了一種面向?qū)ο蟮姆绞絹聿僮鲾?shù)據(jù)庫,使得開發(fā)者可以更加方便地進(jìn)行數(shù)據(jù)持久化操作,需要的朋友可以參考下2023-07-07

