OGNL
表示
開発元 | OGNL Technology |
---|---|
最新版 |
3.0.8
/ 2013年9月24日 |
リポジトリ | |
プログラミング 言語 | Java |
対応OS | Cross-platform |
プラットフォーム | Java Virtual Machine |
種別 | Expression Language (EL) |
ライセンス | BSD License |
公式サイト | http://commons.apache.org/ognl/ |
OGNL (Object Graph Navigation Language) は、Javaオブジェクトのプロパティにアクセスしたりメソッドを呼び出したりすることのできる、Javaによく似た式言語。 OGNLは酔った発音で「orthogonal(オーソゴナル)」という単語の最後の音節のように発音する。
構文
[編集]基本的なOGNL式は単純である。例えば、オブジェクトのnameプロパティを取得するには、単にname
と記述し、headlineプロパティで取得したオブジェクトのtextプロパティを取得するにはheadline.text
と記述する。
OGNL式はプロパティなどを.
で連結してチェーンを構成する。最も単純なチェーンは次の部品で構成される。
部品 | 例 |
---|---|
プロパティ名 | name 、headline.text
|
メソッド呼び出し | hashCode() 現在のオブジェクトのハッシュ値を返却
|
配列インデックス | listeners[0] 現在のオブジェクトのlistenersリストの先頭要素を返却
|
すべてのOGNL式は現在のオブジェクトのコンテキストで評価される。チェーンした場合はその後の式の評価は前の式の評価結果のオブジェクトを対象とするようになる。
例えば以下のチェーンの場合
name.toCharArray()[0].numericValue.toString()
- 初期またはルートオブジェクト (OGNL式の評価時の引数)の
name
プロパティを取得。 - 結果の
String
に対してtoCharArray()
メソッドを呼び出す。 - 結果の配列から先頭の文字(インデックス0番目の文字)を抽出。
- その文字から
numericValue
プロパティを取得 (文字はCharacter
オブジェクトであり、getNumericValue()
メソッドを持つ)。 - 結果の
Integer
オブジェクトのtoString()
を呼び出す。この式の最終結果はこの文字列となる。