arison.jp arison.jp blog - 現在をたのしく、未来をたのしむ。日常の思い出兼備忘録。

【Java】OGNL(Object Graph Navigation Language)

OGNL

OGNL とは、Object Graph Navigation Language の略である。

オブジェクトの参照はシャープ記号(#)でマークされる。

OGNLに関する情報が少なすぎて、Struts2で作成するうえで大変困る。
ognl.orgはなくなっているし。

OGNL – Apache Commons OGNL – Object Graph Navigation Library
http://commons.apache.org/proper/commons-ognl/

【Action プロパティの参照】

 <s:property value="hoge"></s:property> 

ActionContext 内のその他 の(ルートでない) オブジェクトは、# 表記を使ってレンダリングすることができる。

 <s:property value="#session.hoge"></s:property>
 <s:property value="#session['hoge']"></s:property>
 <s:property value="#request['hoge']"></s:property>

【コレクション (Maps、 Lists、 Sets)】

リストの構文は、 {e1,e2,e3}である。
この表現により要素として文字列の”name1″、 “name2” 、”name3″が含まれるリストが生成される。
またデフォルトで”name2″が選択されている。

 <s:select label="label" name="name" list="{'name1','name2','name3'}" value="%{'name2'}"></s:select> 

マップの構文は、#{key1:value1,key2:value2}である。
この表現により要素として文字”foo” には文字 “foovalue”が、”bar” には文字 “barvalue”が設定される。

<s:select label="label" name="name" list="#{'foo':'foovalue', 'bar':'barvalue'}"></s:select>

カスタムタグおよびOGNLの中にカスタムタグは動作しないので注意。

【参考サイト】

OGNL – ソフトウェア技術ドキュメントを勝手に翻訳
http://www.techdoctranslator.com/struts2/tag-developers-guide/ognl

Struts2のカスタムタグ内で用いるOGNL式?について – Java Solution会議室
http://ap.atmarkit.co.jp/bbs/core/fjava/32623

How do we get access to the session
http://struts.apache.org/release/2.2.x/docs/how-do-we-get-access-to-the-session.html

About arison

大都会岡山の南部にある玉野市生まれ。 大都会岡山のIT会社(目標は大都会No.1)でコンピュータとお客を相手に日夜格闘中。 関東出張中はグルメブログ。 基本的に遊び人のおっさん。 ライフハックとガンダム好き。ギガフロート玉野を浸透中。

11. 3月 2013 by arison
Categories: 日記, プログラミング | Tags: , | Leave a comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください