場合の処理テンプレートを、テンプレートは、パフォーマンスを向上させるために、論理ロードデータかどうかを決定することができます。
設定データは、この関数はLazyContextVariableを使用して実装することができるばねブートコントローラ。
開発環境:のIntelliJ IDEA 2019年2月2日
春ブートバージョン:2.1.8
春のブートプロジェクトのデモのための新しい名前を作成します。
1、のpom.xmlは
Thymeleaf依存添加しました
< 依存性> < のgroupId > org.springframework.boot </ のgroupId > < たartifactId >ばねブートスタータthymeleaf </ たartifactId > </ 依存>
2、SRC /メイン/ javaの/ COM /例/デモ/ User.java
パッケージcom.example.demo。 パブリック クラスユーザー{ 整数ID。 文字列の名前。 パブリックユーザ(整数ID、文字列名){ この .ID = ID。 この .nameの= 名前; } パブリック整数のgetId(){ 戻りID。 } 公共 ボイドSETID(整数ID){ この .ID = ID。 } パブリック文字列のgetName(){ 戻り名。 } 公共 ボイドのsetName(文字列名){ この.nameの= 名前; } }
3、SRC /メイン/ javaの/ COM /例/デモ/ TestController.java
パッケージcom.example.demo。 輸入org.springframework.stereotype.Controller。 輸入org.springframework.ui.Model。 輸入org.springframework.web.bind.annotation.PathVariable; 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.thymeleaf.context.LazyContextVariable; 輸入はjava.util.ArrayList; 輸入はjava.util.List; @Controller パブリック クラスTestController { @RequestMapping( "/ {ショー}" ) パブリック文字列試験(モデルモデル、@PathVariable( "表示")ブールショー){ model.addAttribute( "ユーザ"、新たな新LazyContextVariable(){ @Override 保護オブジェクトloadValueは(){ 戻り(queryUsersを); } }); model.addAttribute( "表示" 、ショー); リターン "テスト" ; } プライベートリスト<ユーザー> queryUsers(){ System.out.printlnは(「アナログデータクエリは、実用的なアプリケーションは、データベースに直接問い合わせることができる」); リスト <ユーザー>ユーザー= 新しい新規のArrayList <ユーザー> (); users.add(新しい新しいユーザ(1、。 「ジョン・ドウ」)); users.add((追加新しいですユーザー(2、 "李四" )); users.add(新しいユーザー(3、 "王五" )); リターンユーザー; } }
4、SRC /メイン/リソース/テンプレート/ test.htmlという
<!DOCTYPE HTML > < HTML LANG = "EN" > < 頭> < メタ文字コード= "UTF-8" > < タイトル>タイトル</ タイトル> < スタイルタイプ= "テキスト/ cssの" > テーブル{ 国境崩壊:崩壊。} TD { ボーダー:1ピクセル固体#C1DAD7 。} </ スタイル> </ ヘッド> > < 表目:もし= "$ {ショー==真}" > < TR 番目:各= "ユーザ$ {ユーザー}" > < TD 目:テキスト= "$ {user.id}" > </ TD > < TD 目:テキスト= "$ {user.name}" > </ TD > </ TR > </ テーブル> </ ボディ> </ HTML >
ブラウザアクセス:
HTTP:// localhostを:8080 /偽、ページは、コンソール出力ではなくデータを表示されませんでした。
http:// localhost:8080 /真 、 ページ表示データ、コンソール出力「アナログクエリデータ、実用的なアプリケーションでは、データベースを直接照会することができます。」