「Struts2 でフォームで複数ボタンを使う際、ボタンでアクションを切り替えるには」の版間の差分
提供: tknotebook
(ページの作成:「Category:コンピュータCategory:JavaCategory:Struts2 メインページ>コンピュータの部屋#Java>Struts2 Tips struts2 でひ...」) |
|||
4行: | 4行: | ||
struts2 でひとつのフォームで複数のサブミットボタンを使う場合、 | struts2 でひとつのフォームで複数のサブミットボタンを使う場合、 | ||
− | s:submit タグの action | + | s:submit タグの '''action タグ'''を使うのが定番でしたが、 |
− | + | '''セキュリティ強化のため、struts 2.3.15.3 以降、既定ではこの手法は使えなくなりました。''' | |
もちろん、struts2 のシステムの定数 | もちろん、struts2 のシステムの定数 |
2016年12月21日 (水) 12:23時点における最新版
メインページ>コンピュータの部屋#Java>Struts2 Tips
struts2 でひとつのフォームで複数のサブミットボタンを使う場合、
s:submit タグの action タグを使うのが定番でしたが、
セキュリティ強化のため、struts 2.3.15.3 以降、既定ではこの手法は使えなくなりました。
もちろん、struts2 のシステムの定数
struts.mapper.action.prefix.enabled
をtrueに変更すれば使えるのですが、セキュリティ上使わない方が無難でしょう。
以下のようにして、Javascriptでactionを切り替えることをお勧めします。
Javascript
<script type="text/javascript"> function submitForm(action) { document.forms[0].action = action; document.forms[0].submit(); return false; } </script>
サブミットボタンは JSP では以下のように記述します。以下は okアクションを呼び出すボタンの記述です。
<s:url var="ok_url" action="ok" /> <button type="button" onclick="return submitForm('${ok_url}')">ボタンのキャプション</button>