OGNL (Object Graph Navigation Language) は、Javaオブジェクトのプロパティにアクセスしたりメソッドを呼び出したりすることのできる、Javaによく似た式言語。 OGNLは酔った発音で「orthogonal(オーソゴナル)」という単語の最後の音節のように発音する。
構文 基本的なOGNL式は単純である。例えば、オブジェクトのnameプロパティを取得するには、単にnameと記述し、headlineプロパティで取得したオブジェクトのtextプロパティを取得するにはheadline.textと記述する。 OGNL式はプロパティなどを.で連結してチェーンを構成する。最も単純なチェーンは次の部品で構成される。 部品 例 プロパティ名 name、headline.text メソッド呼び出し hashCode() 現在のオブジェクトのハッシュ値を返却 配列インデックス listeners 現在のオブジェクトのlistenersリストの先頭要素を返却 すべてのOGNL式は現在のオブジェクトのコンテキストで評価される。チェーンした場合はその後の式の評価は前の式の評価結果のオブジェクトを対象とするようになる。 例えば以下のチェーンの場合 name.toCharArray().numericValue.toString() 初期またはルートオブジェクト (OGNL式の評価時の引数)のnameプロパティを取得。 結果のStringに対してtoCharArray()メソッドを呼び出す。 結果の配列から先頭の文字(インデックス0番目の文字)を抽出。 その文字からnumericValueプロパティを取得 (文字は Characterオブジェクトであり、getNumericValue()メソッドを持つ)。 結果のIntegerオブジェクトのtoString()を呼び出す。この式の最終結果はこの文字列となる。
参照 MVEL
外部リンク OGNL 4.x Homepage (Apache)