これは非常に基本的な問題であり、何か間違っているか、何らかの仮定を置いていると確信しています。ここに行きます。
Velocity テンプレート システムを使用する Jira プラグインを作成しています。ResultRow が単一のメンバー変数を持つクラスである ResultRow オブジェクトのリストがあります: 文字列キー:
public class ResultRow {
public String key;
}
これらの ResultRows のリストがあります。
List<ResultRow> rows = new ArrayList<ResultRow>();
ResultRow row = new ResultRow();
row.key = "foo";
rows.add(foo);
Map<String, Object> velocityParams = new HashMap<String, Object>();
velocityParams.put("rows", rows);
return descriptor.getHtml("view", velocityParams);
そして、これらの行を次のようにテンプレートにリストしようとしています:
#foreach ($row in $rows)
<tr><td>$row.key</td></tr>
#end
出力を次のようにしたい: foo. おかしなことに、テンプレート システムは、key の内容ではなく、単にリテラル文字列 "$row.key" を出力します。「$row」が実際にオブジェクトであることを確認するために、次のテンプレートを使用しました。
#foreach ($row in $rows)
<tr><td>$row</td></tr>
#end
結果は期待どおりでした: com.domain.jira.ResultRow@7933f2c6.
クラスの要件が不足している可能性があると思います。特定のメンバーがテンプレートで使用可能であることを Velocity に提案するには、特別な方法で定義する必要がありますか? Jira は、特定のオブジェクトでのみ機能する特別なファンキー バージョンの Velocity を使用していますか?