hello, OGNL その2

ルートオブジェクトとコンテキストの意味がよく分からないので、いくつか実験。
次のメソッドを使ってみる。


Ognl#getValue(java.lang.String expression, java.lang.Object root)
サンプルコードは次の通り。

import ognl.Ognl;
import ognl.OgnlContext;
import ognl.OgnlException;
import java.util.*;

public class OgnlSample
{
public static void main(String[] args) {
try {
// ルートオブジェクトを生成。
Map root = new HashMap();
root.put("foo", "bar");
Map sub = new HashMap();
sub.put("hogehoge", "hogehogehoge");
root.put("hoge", sub);

Object value = Ognl.getValue("foo", (Object) root);
System.out.println(value);
Object value2 = Ognl.getValue("hoge.hogehoge", (Object) root);
System.out.println(value2);
} catch (Exception e) {
e.printStackTrace();
}
}
}

で、結果。

bar
hogehogehoge
ルートオブジェクトを設定すると、そのオブジェクトのプロパティを取得できるよう…であってるのかな…