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により任意のアクションを呼び出す事が可能です。