Velocityの$result.◯◯の呼び出し先

kazuki-tohyama 80views 更新:2017年3月21日

velocityファイルにしばしば${result.◯◯}のような文が出てきます。 javaコードのget◯◯のメソッドが引数を持たない場合、Velocityで呼ぶ際はgetを省略して”.〇〇”としてもよいという決まりがあります。今回はそのget〇〇メソッドをたどる方法について自分の見つけた方法をメモします。

例えばHogeScreen.javaとhoge.vmを結合させている場合、HogeScreen.java内のdoOutputメソッド内に

Piyo listData = new Piyo();
//(略)
listData.doViewList(this, rundata, context);

String layout_template = "portlets/html/hoge.vm";

setTemplate(rundata, context, layout_template);

というような文があるはずです。ここで処理を行うjavaファイルとvmファイルを関連付けています。こちらのハックによるとresultはthisと定義されているようなので、listDataにインスタンスを生成している、ここではPiyoクラスの中身を見るとget〇〇が見つかると思います。

Velocityのresult関連では他にもこちらのハックが参考になりました。 https://hacknote.jp/archives/23020/ https://hacknote.jp/archives/26026/

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません