- PR -

formに複数のsubmitボタンを実装したい場合どうしてますか?

1
投稿者投稿内容
SUK2
ベテラン
会議室デビュー日: 2005/12/27
投稿数: 69
投稿日時: 2006-01-12 18:37
Webアプリケーションを開発するに当り、1つのフォームに複数のsubmitを取り付けたい(処理内容振り分けたい)事ってありますよね。
常日頃から思っている事なのですが、皆さんはどの様な方法を使われていますか?

私が今までに使用した方法にはどれも皆1つ以上の問題があるため、毎回この様な状況になるたびに頭を悩ませております。

私が使用した事のある方法としては
1.JavaScriptによってaction属性を書き換える
 → JavaScriptを使用するためクライアント環境に依存してしまう。
2.formを別にする
 → submitされたform以外の内容が消えてしまう。
3.submitボタンのname属性をユニークにし、そのnameでパラメータを取得出来るか否か(value属性は大抵日本語表記なので値は評価せず、パラメータがnullか否か)で判断
 → action属性は同一なので、異なるサーブレットは呼び出せない。

上記の3つ程度です。
1と2に関してはシステムの要件によっては使用出来ない事があるため、主に3の方法を使っています。StrutsのMappingDispatchActionと考え方は同じかと思います。

皆様は普段どのような方法で開発されているかお聞きしたいです。宜しくお願いいたします。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-01-13 09:56
以前は、イントラの業務アプリケーションの場合、「JavaScriptが有効であること」
というのを稼働条件に入れておいて、1. の方法を使うことが多かったですね。
action属性を書き換えるより、<input type="hidden"> に、JavaScript で
実行モードフラグのようなものをセットして、Servlet側で処理を振り分ける
という方法でしたが。
Struts の場合は、SUK2さんの言われるように、MappingDispatchAction ですね。

最近は、S2JSF 使ってるので、そういうことは意識する必要がなくなり、
助かっています。
SUK2
ベテラン
会議室デビュー日: 2005/12/27
投稿数: 69
投稿日時: 2006-01-13 22:46
ご返答有難うございます。
やはり同じような方法を取らざるをえないみたいですね。

S2JSFは以前からかなり気になっていたのですが、評価もかなり高い様なので、これを機会に勉強してみようと思います。

有難うございました。
1

スキルアップ/キャリアアップ(JOB@IT)