2013-04-01 67 views
0

我需要StringTemplate4產生以下幾種代碼:StringTemplate4如果有條件的長度爲

methodFoo0(Connection conn); 
methodFoo1(Connection conn, int arg1); 
methodFoo2(Connection conn, int arg1, int arg2); 

etc. 

「連接參數conn」部分是始終存在的,所以我只能傳遞方法的名稱和參數的休息到我的ST模板。我的模板看起來如下:

<methodName>(Connection conn, <args; separator=", ">); 

這工作,但如果沒有參數,在所有(除康涅狄格州)產生一個額外的逗號:

methodFoo0(Connection conn,); 

爲了消除多餘的逗號我使用如果嘗試條件和長度 ST4功能,但我無法得到它的工作,雖然我試圖像下面的各種連續技:

<methodName>(Connection conn <if (length(fieldsInFind) \> 0)>,<else><endif><fieldsInFind; separator=", ">) 

...和其他人都失敗了一些解析相關的錯誤(不匹配的輸入)。

最後,我放棄了,並採取了將逗號參數傳遞給基於預渲染邏輯的「,」或空字符串「」的模板。

回答

0

你可以使用<if (fieldsInFind)>檢查第二個參數的存在,只把它傳遞給模板,如果它的大小是大於0

0

多餘的逗號不是由分離器產生,但它是一個你已經在​​之後鍵入。

你做到以下幾點:

<methodName>(Connection conn<if(args)>,<args; separator=", "><endif>)

通知的康恩逗號後僅放置,如果有,其實更多的參數。