SpringBootシリーズ:Spring BootテンプレートエンジンFreeMarkerを使用

2957 ワード

一、Javaテンプレートエンジン
テンプレートエンジン(ここでは特にWeb開発用のテンプレートエンジンを指す)は、ユーザインタフェースと業務データ(コンテンツ)を分離するために生成され、特定のフォーマットのドキュメントを生成することができ、ウェブサイト用のテンプレートエンジンは標準的なHTMLドキュメントを生成する.
Javaでは、主なテンプレートエンジンとしてJSP、Thymeleaf、FreeMarker、Velocityなどがあります.
前後の分離の台頭と流行に伴い、テンプレートエンジンはすでに冷遇されているが、多くの古いプロジェクトはjavaのテンプレートエンジンを使ってインタフェースをレンダリングしているが、たまに自分で練習プロジェクトを書いて、テンプレートエンジンを使うのも前後の分離より速い.
このシリーズでは、SpringBootがJSP、Thymeleaf、FreeMarkerをどのように統合するかを説明します.Velocityについては、高バージョンのSpringBootではVelocityはサポートされていません.ここでは説明しません.
この記事では、Spring BootがFreeMarkerを統合する方法について説明します.
一、Spring Boot集積FreeMarker
まず,コアのweb依存に加えてfreemarkerのstatrerを導入するだけで依存を導入する.

    org.springframework.boot
    spring-boot-starter-web




    org.springframework.boot
    spring-boot-starter-freemarker

そしてプロファイルです.主にspring.freemarkerノードの下のビューファイルディレクトリtemplate-loader-pathおよびファイル接尾辞suffixを構成します.ローカル開発の場合、cacheはfalseに設定してキャッシュを閉じ、ファイルを変更した後にサービスを再起動する必要がないようにします.
server:
  port: 10900

spring:
  profiles:
    active: dev
  freemarker:
    enabled: true #    freemarker
    template-loader-path: classpath:/templates/ #         ,       
    suffix: .ftl #       
    content-type: text/html
    check-template-location: true #            
    cache: false #        
    charset: UTF-8 #    
    #      
    allow-request-override: false #    HttpServletRequest    (  )            
    allow-session-override: false #    HttpSession    (  )            
    expose-request-attributes: false #    request    merge      ,       model 
    expose-session-attributes: false #   merge     , HttpSession      model 
    expose-spring-macro-helpers: true #     springMacroRequestContext     RequestContext Spring’s macro library  
    prefer-file-system-access: true #           template,      ,   true

次にresoucresディレクトリの下にtemplatesディレクトリを新規作成し、hello.ftlファイルとmv.ftlファイルをそれぞれ新規作成します.

hello freemarker



    

mv freemarker

I'm ${name} from mv method

ここでは主にFreeMarkerを統合する方法を説明し,FreeMarker構文についてあまり説明しないので,簡単なhtmlファイルを2つだけプレゼンテーションとして提供した.
次に、Controllerクラスルーティングページを作成します.このページは非常に簡単で、helloページをジャンプし、name=imyangを携帯してmvページをジャンプします.
@Controller
@RequestMapping("index")
public class IndexApi {

    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }

    @RequestMapping("/mv")
    public ModelAndView mv(){
        ModelAndView mv = new ModelAndView("mv");
        mv.addObject("name","yanger");
        return mv;
    }

}

プロジェクトの開始、個別アクセスhttp://localhost:10900/index/helloおよびhttp://localhost:10900/index/mvあ、すでにページ情報が表示されているのが見えます.
ソースアドレス:https://github.com/imyanger/s...