« イベントとメッセージ その2 | メイン | viewstate と viewcollection »

イベントの続きと、viewstate

イベントは、どうやって発生させるのだろうか。
方法は、二通りあるようだ。
一つめは、以前にも書いたように、event-handler の results => result 要素で発生させる。
二つめは、さらに、以前に書いたように、「URLの後ろに“event=<イベント名>”」として、リクエストによって、発生させる。
このイベント名がそのまま、発生するイベントとなっている。

この“event=<イベント名>”を省略した場合は、どうなるのか。
http://~~~/~~~/index.cfm とした場合である。
どうやら、ColdSpring.xml で定義されている、

 <beans>
  <bean id="modelGlueConfiguration" class="ModelGlue.unity.framework.ModelGlueConfiguration">
   <property name="defaultEvent"><value>page.index</value></property>
  </bean>
 </beans>

page.index が発生するらしい。
確かに、“イベント指定なし”と“event=page.index”では、同じ挙動になる。

他にも、exception
とあるように、エラーが発生すると、exception というイベントが発生するようだ。

この部分を見つけるまで、ColdSpring.xml の modelGlueConfiguration は、あまり注意してみていなかったけど、どうやら、
結構重要らしい。

サンプルなどを見ると、このイベントをリンクなどのURLに指定する際に、画面表示プログラム埋め込み文字列ではなく、
views => include => value で引数として画面表示プログラムへ渡している。
果たして、これにどれほどの意味があるのかわからないけど、引数の渡し方は、ここから、わかる。

この“xe.cartinsertitem”が引数の変数名で、“CartInsert”がその値となる。
“xe”という単語が気になるが、“eXit Event”を示しているらしい。
ただし、この“xe”という単語が機能上特別な意味を持っているのかは、わからなかった。

では、画面側で、それらの値を受け取る場合は、どうなるのか。
viewstate.getValue("xe.cartinsertitem")
とすることで、値を受け取れる。
viewstate というのは、コントローラーなど、ロジック上から、値を渡す場合などにも、この空間?に設定されるものである。

また、myself や、self という予約後もあり、viewstate.getValue("myself") とすると、
リクエストページが index.cfm の場合「index.cfm?event=」という値を得ることができる。

トラックバック

このエントリーのトラックバックURL:
http://www.schwarzmond.info/mt/mt-tb.cgi/42

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年04月17日 13:36に投稿されたエントリーのページです。

ひとつ前の投稿は「イベントとメッセージ その2」です。

次の投稿は「viewstate と viewcollection」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。