最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

FreeMarker如何調(diào)用Java靜態(tài)方法及靜態(tài)變量方法

 更新時(shí)間:2023年12月27日 16:03:15   作者:Colder丶  
這篇文章主要介紹了FreeMarker如何調(diào)用Java靜態(tài)方法及靜態(tài)變量方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

FreeMarker調(diào)用Java靜態(tài)方法及靜態(tài)變量方法

這里介紹下在類(lèi)似 Spring+FreeMarker 的架構(gòu)中如何在FreeMarker中訪問(wèn)Java中的靜態(tài)方法以及靜態(tài)變量。

為了方便以及可復(fù)用先創(chuàng)建一個(gè)工具類(lèi)

/**
 * FreeMarker Utils.
 *
 * @author chenxinyu
 */
public abstract class FreeMarkerUtils {
 
    /**
     * init for static classes and fields.
     *
     * @param model model
     */
    public static void initStatics(final Model model) {
        // you can also create the Version like: new Version("2.3.27");
        BeansWrapper wrapper = new BeansWrapper(new Version(2, 3, 27));
        TemplateModel statics = wrapper.getStaticModels();
        model.addAttribute("statics", statics);
    }
 
}

這里稍作解釋?zhuān)?/strong>

`wrapper.getStaticModels()` 會(huì)返回一個(gè) `TemplateHashModel` ,它會(huì)利用反射公開(kāi)所有的靜態(tài)方法和靜態(tài)成員變量,包括 final 和 非final 的。

之后我們將這個(gè) `HashModel` 添加至 Spring 的 Model 參數(shù)里面。 

然后在 `Controller` 里面調(diào)用如上代碼即可

FreeMarkerUtils.initStatics(model);

在FreeMarker的 `.ftl` 文件中調(diào)用靜態(tài)方法和靜態(tài)變量

1.訪問(wèn)靜態(tài)變量

${statics["com.springboot.constants.TestConstants"].NAME}

引號(hào)中間填入靜態(tài)變量所在的類(lèi)路徑,中括號(hào)后面使用 . 來(lái)調(diào)用相應(yīng)變量就行。

2.訪問(wèn)靜態(tài)方法

  • I.首先我們使用 <#assign> 來(lái)定義下所要調(diào)用的類(lèi):
<#assign DateTimeUtils=statics['com.springboot.util.DateTimeUtils']>
  • II.之后就可以盡情調(diào)用了:
${DateTimeUtils.formatDateTime(datetime)}

雖然網(wǎng)上搜羅出過(guò)不少其他解決方案的版本,但自己在沿用的過(guò)程中出現(xiàn)過(guò)些許不同的坑,于是重新整理了這套可行、可用,且暫未過(guò)期的方案

以前所使用的 `new BeansWrapper()` 以及 `BeansWrapper().getDefaultInstance()` 現(xiàn)在均已過(guò)期(被標(biāo)記為 @Deprecated)

新的 BeansWrapper 需要利用 BeansWrapperBuilder 來(lái)創(chuàng)建。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis分頁(yè)的四種方式

    MyBatis分頁(yè)的四種方式

    分頁(yè)查詢是非常常見(jiàn)的需求,本文主要介紹了MyBatis分頁(yè)的四種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • 將Map轉(zhuǎn)換回String類(lèi)型的實(shí)現(xiàn)方式

    將Map轉(zhuǎn)換回String類(lèi)型的實(shí)現(xiàn)方式

    這篇文章主要介紹了將Map轉(zhuǎn)換回String類(lèi)型的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對(duì)比

    詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對(duì)比

    這篇文章主要介紹了詳解mybatis 批量更新數(shù)據(jù)兩種方法效率對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • idea每次新打開(kāi)的項(xiàng)目窗口maven都要重新設(shè)置問(wèn)題

    idea每次新打開(kāi)的項(xiàng)目窗口maven都要重新設(shè)置問(wèn)題

    這篇文章主要介紹了idea每次新打開(kāi)的項(xiàng)目窗口maven都要重新設(shè)置問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java實(shí)現(xiàn)貪吃蛇游戲代碼(附完整源碼)

    java實(shí)現(xiàn)貪吃蛇游戲代碼(附完整源碼)

    這篇文章主要介紹了java實(shí)現(xiàn)貪吃蛇游戲代碼(附完整源碼),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot調(diào)用公共模塊的自定義注解失效的解決

    SpringBoot調(diào)用公共模塊的自定義注解失效的解決

    這篇文章主要介紹了SpringBoot調(diào)用公共模塊的自定義注解失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java+Selenium實(shí)現(xiàn)文件上傳下載功能詳解

    Java+Selenium實(shí)現(xiàn)文件上傳下載功能詳解

    這篇文章主要介紹了java代碼如何利用selenium操作瀏覽器上傳和下載文件功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-01-01
  • Java使用Zxing二維碼生成的簡(jiǎn)單示例

    Java使用Zxing二維碼生成的簡(jiǎn)單示例

    ZXing是一個(gè)開(kāi)源的,用Java實(shí)現(xiàn)的多種格式的1D/2D條碼圖像處理庫(kù),下面這篇文章主要給大家介紹了關(guān)于Java使用Zxing二維碼生成的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • hibernate批量操作實(shí)例詳解

    hibernate批量操作實(shí)例詳解

    這篇文章主要介紹了hibernate批量操作,結(jié)合實(shí)例形式分析了Hibernate實(shí)現(xiàn)批量插入,更新及刪除等操作的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • 如何在Maven項(xiàng)目配置pom.xml指定JDK版本和編碼

    如何在Maven項(xiàng)目配置pom.xml指定JDK版本和編碼

    maven是個(gè)項(xiàng)目管理工具,如果我們不告訴它要使用什么樣的jdk版本編譯,它就會(huì)用maven-compiler-plugin默認(rèn)的jdk版本來(lái)處理,這樣就容易出現(xiàn)版本不匹配的問(wèn)題,這篇文章主要給大家介紹了關(guān)于如何在Maven項(xiàng)目配置pom.xml指定JDK版本和編碼的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

广南县| 泽普县| 察雅县| 青铜峡市| 大同县| 柏乡县| 湾仔区| 西峡县| 洛隆县| 阜新市| 濮阳市| 松潘县| 云和县| 浦江县| 汝南县| 松溪县| 周宁县| 周宁县| 广安市| 枣庄市| 麻城市| 璧山县| 嵊泗县| 西林县| 柘荣县| 分宜县| 禹州市| 廉江市| 金秀| 志丹县| 金阳县| 娄烦县| 克东县| 壤塘县| 宜州市| 斗六市| 绥中县| 大洼县| 沿河| 奉新县| 博罗县|