当社では、チームのドキュメント サイトとしてConfluence wiki の使用を開始し、 PocketQueryというマクロを実装しています。
このマクロは、SQL データをサイトに動的に取り込みます (サイトの連絡先などの情報を取り込みます)。
Velocity Templatesを使用してデータを表示しますが、単純な配列のインデックス付けを行うときに問題が発生します。
コード:
#set ( $page = $additionalParams.get('Page') )
#set ( $pages = "" )
#if ( $page != $null && $page != "" )
#set ( $pages = $page.split(";") )
#else
#set ( $pages = [] )
#end
は$additionalParams
、テンプレートの外部で初期化されたリストであり、マクロに渡されるパラメーターが含まれています。この場合:
ページ=サイト名;サーバー
私が設定しようとしているコードはName;Server
、$additionalParams
リストから値を取得し、値が空でない場合は値を分割してから、最初の値を取得しています。
私が試してみました:
$pages.get(1)
$pages[1]
ただし、値は取得されません(インデックスとしてゼロも試しました-同じ結果です)。
この配列を foreach し、各エントリを出力することは機能します。つまり、そこに値があることを意味します。
私ができるようにしたいのは、配列にインデックスを付けることだけです-とにかくこれを行うことを掘り下げることはできません。
$pages.get
メソッドを使用してインデックスを作成できるように、これをリストに変換できますか?
それを拡張すると、$pages.contains
メソッドを使用できるようになりますか?
Confluence は Velocity 1.6 を使用しています。
編集:
このページとこのページの解決策は機能しません - テンプレートがそれらを使用するための適切なオブジェクトがコンテキストにないのではないかと (乱暴に) 推測していますか?
(PocketQuery または Confluence がこれを行うでしょうか?)
「ListTool」を使用するにはどうすればよいですか?