2012-02-24 22 views
3

私はいくつかのパラメータ名とそのクラス名が必要なdoItという名前のメソッドを持っています。私は、paramList.Iという名前のparamをテンプレートに与えます。マクロ・ディレクティブを定義し、パラメータ・リストを反復しますが、結果的に各パラメータは行を占有します。マイテンプレートコードは以下の通りです:同じ行で反復出力を作成する方法は?

<#macro paramList plist> 
    <#if plist??> 
     <#list plist as p> 
      ${p.javaType?substring(2)} ${p.name} <#if p_has_next>, </#if> 
     </#list> 
    </#if> 
</#macro> 
doIt(<@paramList plist=params/>) 

実行した結果は次のとおりです。

doIt(   int end , 
      String endDate , 
      String evtCode , 
      int evtNo , 
      String giftCode , 
      int start , 
      String startDate 
) 

出力が同じ行に表示されるすべてのパラメータの作り方。私は行の中断を避けるために同じ行にリスト指示論理を書くことができることを知っていますが、他の論理もあれば、しばらくしてから読んで理解するには時間がかかりすぎます。私が欲しい 形式は次のとおりです。

​​

答えて

5

は、最も内側の</#if><#t>を置きます。あなたがそれを行うために、このようにコードを変更することがあるだろう

+0

"$ {p.javaType?substring(2)} $ {p.name} <#if p_has_next>、"の後に<#>を入れてみました。あなたは私に大きな助けをした、ありがとう。フリーメーカのホワイト・ブランクのコンセプトの一部であることが分かります。 – user1231111

0

別の方法を(http://freemarker.org/docs/ref_directive_t.html#ref.directive.tを参照してください):

ある
<#macro paramList plist> 
    <#if plist??> 
     <#list plist as p>${p.javaType?substring(2)} ${p.name} <#if p_has_next>, </#if></#list> 
    </#if> 
</#macro> 
doIt(<@paramList plist=params/>) 

は、リストのすべてのインライン作ります。読みにくいですが、必要な空白文字(空白など)はそのままにしておきます。

関連する問題