AbstractIterationAttrProcessorを継承すればOKです。
イメージはAbstractStandardIterationAttrProcessorの実装を読めばわかるのですが
ポイントはgetIterationSpecが返却するIterationSpecです。
コンストラクタのそれぞれの変数がいろいろややこしそうですが、
要するに以下のようになってます。
iterVarName:iteratedObjectの中身が入る変数の名前。
statusVarName:indexやカウンター等がまとまったオブジェクトが格納される変数の名前。
iteratedObject:new ArrayList<UserDefinedClass>();
たとえば、
lang
1return new IterationSpec("a","a.stat",new ArrayList<Article>(){{....}});
のようにしていたとすると、テンプレート側では、
lang
1<div mytag:list="article">
2インデックス:<span th:text="${a.stat.counter}"/>
3<span th:text="${a.title}"/>
4<span th:text="${a.contents}"/>
5</div>
このようにして、リストをまわしてそのメンバーにアクセスすることができます。
#上記の例だとOGNLである必要すらないので、高速ですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。