freemarker初歩使用小まとめ
1673 ワード
6月には、freemarkerというテンプレートエンジンに触れた.当時,プロジェクトではテンプレートが固定されたjson列で取得した異なるパラメータに基づいて異なるパラメータのjsonを生成する必要があった.最初は方法の中でjsonObjectというオブジェクトでjsonを組み立てましたが、後ろは柔軟性が低すぎます.属性を変更するには大きく変更する必要があります.後でネットでいくつかの方法を探して、このfreemakerというテンプレートエンジンを見つけます.プロジェクトではftlタイプのファイルを使用してテンプレートjsonを事前に書き、方法でストリーム読み出しファイルを文字列に変換します.さらに、接合されたパラメータをjson指定位置に置き換えます.この置換の過程では、いくつかの文字に注意して処理する必要があります.そうしないと、パラメータが置換された後、読めないjson列が生成される可能性があります.(以下、私がやっている過程で出会ったいくつかの小さな問題を書きます)1、デジタル型パラメータは千桁まで処理しないとカンマがあります(1000)
2、時々伝達されるパラメータの中には「このような時に生成されたjson列が認識できない場合、置換文字列法replaceを使用してパラメータの中の」の置換が必要である.
3、パラメータboolean型をstring型に変える
4、配列を巡るときによく使う属性
4-1ループの変数_has_next(次があるかどうかを示し、ある場合はラベルの内容を付ける)
4-2ループの変数_index(現在のループ配列を示す下付き)
5、null値処理(nameはnull)
まだ未使用の方法がたくさんありますが、更新に役立ちます.
set ?c
"length":${column.length?c}
2、時々伝達されるパラメータの中には「このような時に生成されたjson列が認識できない場合、置換文字列法replaceを使用してパラメータの中の」の置換が必要である.
"formulaExpression":"${formulaExpression?replace("\"", '\\"')}"
3、パラメータboolean型をstring型に変える
"useScpUpload":${isTrue?string('true','false')}
4、配列を巡るときによく使う属性
${columnMapping.id}/${columnMapping.name}
#list>
4-1ループの変数_has_next(次があるかどうかを示し、ある場合はラベルの内容を付ける)
{
"sourceColumnCode":"${columnMapping.sourceColumnCode}"
}
,#if>
#list>
4-2ループの変数_index(現在のループ配列を示す下付き)
{
"index": "${columnMapping_index}"
}
#list>
5、null値処理(nameはnull)
"name": ${name!} -->
"name": ${name!'hello'} --> name , hello
"name": #if>
まだ未使用の方法がたくさんありますが、更新に役立ちます.