S2JSFページ遷移

4)開発TIPS
4-1)開発時のプレビュー
開発時にはブラウザで直接HTMLをプレビューをした場合にもページ遷移させるTIPSを紹介します。
Ex.11

01:<html xmlns:m="http://www.seasar.org/maya">
・・・
02:<body>
03:  <form>
04:    <input type="button" value="Hello" m:action="#{testAction.goHello}" 
05:          onclick="location.href='hello.html'">/><br/>
06:    <a href="hello.html" m:action="#{testAction.goHello}">Hello</a>
07:  </form>
08:</body>
09:</html>

05行目のbuttonタグでaction属性とonclick属性を指定しています。
onclick属性のlocation.href='hello.html'の部分は実行時には無視されます。
ブラウザで直接HTMLをプレビューした時に、ページ遷移させる為に記述しています。
06行目のanchorタグもaction属性とhref属性を指定しています。
このように両方指定した場合、hrefは実行時には無視されます。
ブラウザで直接プレビューしたときに、ページを遷移させるために記述しています。


4-2)JavaScriptより指定されたJavaBeansのメソッドを実行する場合は以下の手順で行います。
例えば、ラジオボタンチェックボックスのクリック時や
SELECTタグの選択時にアクションを呼びたい場合。

01:<form id="form1">
02: <input type="checkbox" onclick="jsSample();"/>
03: <a id="dummy1" m:action="#{testAction.goPage1}"/>
04: <a id="dummy2" m:action="#{testAction.goPage2}"/>
05:</form>
06:<script type="text/javascript">
07:<!--
08:function jsSample(){
09:  var f = document.forms['form1'];
10:  f.target='';
11:  f.elements['form1:_link_hidden_'].value='form1:dummy1';
12:  f.submit();
13:  return false;
14:}
15://-->
16:</script>

01行目の

<form id="form1">

でformにidを設定します。
03行目の

<a id="dummy" m:action="#{testAction.goPage1}"/>

で呼び出したいactionを設定したダミーのanchorを記述します。
この際、anchorにもidを付与します(上記の場合は "dummy1")
10行目のf.target='';でtargetをクリアします。
11行目のf.elements['form1:_link_hidden_'].value='form1:dummy1';で
呼び出したいactionのidを設定します。
['formのid:_link_hidden_']の :_link_hidden_ は固定です。
もし、testAction.goPage2を呼び出したい場合は、
11行目を f.elements['form1:_link_hidden_'].value='form1:dummy2';に変更します。
これでJavaScriptにより任意のアクションを呼び出す事が可能です。