freemarker初歩使用小まとめ

1673 ワード

6月には、freemarkerというテンプレートエンジンに触れた.当時,プロジェクトではテンプレートが固定されたjson列で取得した異なるパラメータに基づいて異なるパラメータのjsonを生成する必要があった.最初は方法の中でjsonObjectというオブジェクトでjsonを組み立てましたが、後ろは柔軟性が低すぎます.属性を変更するには大きく変更する必要があります.後でネットでいくつかの方法を探して、このfreemakerというテンプレートエンジンを見つけます.プロジェクトではftlタイプのファイルを使用してテンプレートjsonを事前に書き、方法でストリーム読み出しファイルを文字列に変換します.さらに、接合されたパラメータをjson指定位置に置き換えます.この置換の過程では、いくつかの文字に注意して処理する必要があります.そうしないと、パラメータが置換された後、読めないjson列が生成される可能性があります.(以下、私がやっている過程で出会ったいくつかの小さな問題を書きます)1、デジタル型パラメータは千桁まで処理しないとカンマがあります(1000)
                 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>

まだ未使用の方法がたくさんありますが、更新に役立ちます.