Javaオブジェクトからいくつかのプロパティを読み込むためにOGNLを使う必要があります。 OGNLはまったく新しいものです。 OGNLの利用可能なドキュメントは、OGNLのウェブサイトは私にとって本当に混乱しています。OGNL Hello World in Java
誰でも簡単なOGNLの使用例(またはチュートリアルへのリンクも役立ちます)を提供することができます。
Javaオブジェクトからいくつかのプロパティを読み込むためにOGNLを使う必要があります。 OGNLはまったく新しいものです。 OGNLの利用可能なドキュメントは、OGNLのウェブサイトは私にとって本当に混乱しています。OGNL Hello World in Java
誰でも簡単なOGNLの使用例(またはチュートリアルへのリンクも役立ちます)を提供することができます。
このお試しください:ここで
Dimension d = new Dimension(2,2);
String expressionString = "width";
Object expr = Ognl.parseExpression(expressionString);
OgnlContext ctx = new OgnlContext();
Object value = Ognl.getValue(expr, ctx, d);
System.out.println("Value: " + value);
はjython(javaのにコンパイルのpython)のための例のHelloWorldです。
from ognl import Ognl, OgnlContext
from java.lang import String
exp = Ognl.parseExpression("substring(2, 5)")
print Ognl.getValue(exp, OgnlContext(), String("abcdefghj"))
意図は、次に、(コモンズ-々BeanUtilsから)PropertyUtils.getPropertyが十分であるオブジェクトからプロパティを読み出すことである場合。ただし、条件などを評価することが意図されている場合は、Ognlが役立ちます。ここで
は、ブールと同じ寸法の一例である:
Dimension d = new Dimension();
d.setSize(100,200) ;// width and height
Map<String,Object> map = new HashMap<String,Object>();
map.put("dimension", d);
String expression = "dimension.width == 100 && dimension.height == 200";
Object exp = Ognl.parseExpression(expression);
Boolean b = (Boolean) Ognl.getValue(exp,map);
// b would evaluate to true in this case
OGNLは、あなたが失うデータ間のアーキテクチャを結合して、それが消費者だときに非常に便利になる文字列式を経て、オブジェクトのフィールドとメソッドにアクセスすることができます。それはフードの下での反射を使用していますが、純粋な反射アプローチと比較して、開発を確実にスピードアップします。
いくつかの1つのラインの例
System.out.println(Ognl.getValue("x", new Point(5,5)));
System.out.println(Ognl.getValue("size", new ArrayList<Object>()));
Documentationはすでに基本的な、より高度なOGNL式の数を持っています。