ホームページ > ウェブフロントエンド > htmlチュートリアル > 一般的なフリーマーカー文法の包括的なリスト

一般的なフリーマーカー文法の包括的なリスト

WBOY
リリース: 2016-06-24 11:28:26
オリジナル
1657 人が閲覧しました

FreeMarker の補間には次の 2 種類があります: 1. ユニバーサル補間 ${expr}; 2. デジタル フォーマット補間: #{expr} または #{expr;format}

${book.name?if_exists } / /存在するかどうかを判断するために使用され、この値を出力します

${book.name?default('xxx')}//デフォルト値 xxx

${book.name!"xxx"}//デフォルト値 xxx

${book.date?string('yyyy-MM-dd')} //日付形式

${book?string.number} 20 //3 つの異なる数値形式

${book?string.country.-- <#-- $20.00 -->

${book?string.percent}—<#-- 20% -->

<#assign foo=ture /> / /変数を宣言します。表示用のブール値を挿入 ${foo?string("yes","no")} <#-- yes -->

サイズ比較記号の使用に関する注意: (xml のため)、yes数値と日付を比較するには、<、<=、> および >= の代わりに lt、lte、gt、gte を使用します。

関数内: 属性とは異なるアクセスを呼び出すには、代わりに ? を使用します

いくつかの一般的な組み込み関数

文字列の HTML エンコード

cap_first - 文字列の最初の文字を大文字にします

lower_case - 文字列を小文字に変換します

trim - 文字列の前後の空白文字を削除します

例: ${" freeMarker "? cap_first }

シーケンス (シーケンス) の場合 size - 要素の数を取得しますsequence

数値 int の場合 - 数値の整数部分を取得します (たとえば、-1.9? int の結果は -1)

セットの場合、配列と添字インデックスを使用してアクセスできます

論理判断: if。 .... ......

<#if 条件>...

<#elseif 条件2>...

<#elseif 条件3>...

<#else> ; ...

ブール型のnull値判定

null値判定は<#if book.name?? //${}は変数のレンダリング表示であることに注意してください。 ; は定義とその他の操作 シンボルの定義

switch....

<#switch value>

<#case refValue1>

...

<#break>

<#case refValue2>

...

<#break>

...

<#case refValueN>

...

<#break>

<#default>

...

int 間隔のセットをすばやく定義<#assign l=0..100/> // [] はそうではないことに注意してください。必須

3: ループ読み取りコレクション: /

<#list students as stu>

${stu}

jstl と同様ループを実行すると、ループのステータスにアクセスすることもできます

item_index: 現在の変数のインデックス値

item_has_next: stu など、項目名が as の後の変数名である次のオブジェクトがあるかどうか

長さの判定を設定します<#if Student?size != 0> = を判定するときは、== ではなく = 記号が 1 つしかないことに注意してください

マクロ/テンプレート

初期理解: もっと活用してくださいクロージャのようなもので、スクリプト内のどこにでも定義および参照でき、その場で動作します

<#macro welcome>

Hello Joe!

使用されるメソッドは次のとおりです:

< @greet> welcome person color>

${person}

パラメータを使用して呼び出すときは、次のことに注意してくださいXML に似た属性形式を使用して送信するため、順序の問題を心配する必要はありません<@greet person="Fred" color = "black" +2" color="${color}">Hello ${ person}!

xml のネストされたコンテンツを使用してマクロ呼び出し、キータグを渡します<#nested>

<#macro border>

gt;gt;gt;

<#nested>

呼び出し時:<@border>ボーダー付きテキスト

<#nested> ラベルはマクロ呼び出し内で複数回使用でき、複数のマクロを組み合わせてネストすることもできます

for ループの簡略版:

<#list 1..count as #macrorepeat count>

<#list 1..count as x>

<#nested x, x/2 , x==count> // ここでの 3 つのパラメーターは

<@repeat count=4 ; c, Halfc, last>

${c}. ${halfc}<#if last> // ここの内容は、マクロ内の <#nested> によって渡されます。注意する場合、マクロはこれらを受け入れる必要があります

使用されるパラメータの数は可変であることに注意することも重要です

すべてが必須ではありません。効果は異なります

テンプレートで変数を定義します

テンプレートで定義される変数には 3 つのタイプがあります:

プレーン変数: include ディレクティブを使用して挿入されたテンプレートや、ディレクティブを割り当てます。

ローカル変数: マクロ定義本体で有効で、ローカル命令を使用して作成および置換されます。

ループ変数: 命令のネストされたコンテンツ内にのみ存在でき、命令 (リストなど) によって自動的に作成されます。マクロのパラメータはループ変数ではなくローカル変数です

<#assign x = "plain"> ; / /グローバルプレーン変数と内部ループ変数は、同じ名前の外部ループ変数を隠します

外部インポートの使用はモジュール化に使用でき、宣伝効果を提供します

例: lib/my_lib.ftl ファイル

<#マクロ著作権日付>

Copyright (C) ${date} Julia Smith.All Rights Reserved.


メール: ${mail}

< /#macro>

<#assign mail = "jsmith@acme.com">

lib/my_inc.ftl ファイル

<#import "/lib/my_test.ftl" as my>

<#assign mail ="fred@acme.com">

<@my.copyright date="1999-2002"/>

${my.mail}

${mail}

出力結果は表示されません 競合します

ライブラリ内の変数を変更するには、in キーワード <#assign mail="jsmith@other.com" in my> を使用します

関数定義: マクロ オブジェクトとは異なり、戻り値が付きます< #関数名 param1 param2><#return val>戻りパラメータを持つ関数

stringA[M .. N] は、substring(stringA, M, N) と同様に部分文字列を受け取ります

< #include " /copyright_footer.html"> 他のページ要素をインポートします

<#include filename options>

オプションには 2 つの属性が含まれます

encoding="GBK" エンコード形式

parse=true ftl 構文として解析するかどうかデフォルトは true で、テキスト モードでは false が導入されます。ftl ファイルでは、

parse="true"

ハッシュおよびリスト定義の代わりに、parse=true などのブール値が直接割り当てられることに注意してください。

<#assign c = {"a":"orz","b":"czs"}>

${c.a}

リスト フラグメントでは、products[10..19] またはproducts[5..] 数値に限定される場合の形式が定義されています

<#assign c= [1,2,3,4,5,6,6,7]>

<#list c[1..3] as v>

${v}

変数product.color!"red"のデフォルト処理

出力を処理するにはcompressディレクティブまたはtransformを使用します。

<#compress>...: 空白行を削除します。

<@compress single_line=true>...出力を 1 行に圧縮します。必要なドキュメントはすべてラップする必要があります

freemark では、「<」の代わりに「[」を使用できます。テンプレート ファイルの先頭に [#ftl] を追加します。

コメント部分<#-- コメント部分-->

Number 出力#{c.a;m0} の別の方法は、${} とは異なります。この例は、出力数値をフォーマットし、小数点以下の桁数を保持するために使用されます。 used#{expr; format} は数値をフォーマットするために使用します。 format は次のとおりです:

mX: 小数部の最小 X 桁

MX: 小数部の最大 X 桁

文字列を定義するときは、' を使用できます。 ' または ""、特殊文字は

を使用してエスケープする必要があります

特殊文字が多数ある場合は、${r"..."} を使用してフィルタリングできます

${r"${foo} "}

${r"C: foobar"}

Map オブジェクトのキーと値は式ですが、キーは文字列である必要があります

混合可能です。および [""] アクセス

book.author["name"] //ドット構文と角括弧構文の混合使用

変数の欠落を処理するために、FreeMarker は 2 つの演算子を提供します: オブジェクトの存在がないことによって引き起こされる例外を防ぐために使用されます

! : 欠落している変数のデフォルト値を指定します

??: 変数が存在するかどうかを判断し、ブール値を返します

noparse 命令は、FreeMarker が仕様に含まれるコンテンツを処理しないことを指定します。命令の構文形式は次のとおりです。次のように: <#noparse>..

${firstName?html} は、文字のフォーマット、フィルタリングなどに HTML を使用します。

escape、noescape 命令、本文の内容

次のコードを見てください:

<#escape x as #escape>

上記のコードは次と同等です:

名:${firstName?html}

姓:${ lastName?html}

旧姓:${maidenName?html}

グローバル変数メソッドの定義

<#assign name1=value1 name2=value2 / > 複数の変数を同時に定義できます。または、ループを使用して変数に値を代入することもできます

<#assign x>

<#list [ "月曜日"、"火曜日"、"水曜日"、"木曜日"、"金曜日"、"土曜日", "Sunday"] as n>

${n}

< /#assign>

${x}

設定コマンド。動作環境を動的に設定するために使用されます。 freeMarker の:

このコマンドは、FreeMarker の動作環境を設定するために使用されます。コマンドの構文形式は次のとおりです: <#setting name =value>。この形式では、name の値の範囲には次のものが含まれます。

locale: このオプションは、テンプレートで使用される国/言語オプションを指定します

number_format: フォーマットされた出力数値の形式を指定します

boolean_format: 2 つのブール値の構文形式を指定します、デフォルト値は true、false です

date_format、time_format、datetime_format: 出力日付のフォーマットを指定します

time_zone: 出力日付のフォーマットに使用するタイムゾーンを設定します

<#return> ; マクロの実行を終了するために使用されます

?html は、文字列に含まれる可能性のある HTML 文字をフィルターします

Java メソッドを呼び出すには、TemplateMethodModel インターフェイスを使用する必要がありますが、属性へのアクセスが上書きされるようです

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート