0

name各ボタンの値がわかっている場合、どの送信ボタンがクリックされたかを検出する方法を知っています。しかし、nameが動的であるか、別のコンポーネントによって定義されている場合はどうなるでしょうか?

たとえば、ここでは、次<form>のいずれかalphaのPOST データを簡単に確認できbravoます。

<form>
  <input type="submit" name="alpha" value="Alpha">
  <input type="submit" name="bravo" value="Bravo">
</form>

しかし、それは単に、それらの名前を探す必要があることを知っているからです。

この種の状況を処理するためのベスト プラクティスはありますか? (おそらく要素をレンダリングすることによって<input type="hidden" name="submit-button-names" value="dynamic_name1|dynamic_name2|etc">) JavaScript を必要としないソリューションが欲しいです。

4

2 に答える 2

0

タグに指定したパラメータのリストに基づいて、フォームにさまざまな入力を設定するカスタムタグを作成できます。HTMLは次のようになります。

<form method="POST" action="SelectColour.do">
    <p>Select your favorite colour: </p>
    <formTags:select name='colour' size='1' optionsList='${applicationScope.colourList}'/>
    <input type="SUBMIT" value="Click here to submit">
</form>

カスタムタグを作成するための適切なガイドは次のとおりです。

于 2012-06-29T13:15:39.443 に答える
0

これらのボタンを表示する JSP を制御できると仮定すると、POST されたデータで検索できる文字列をボタン名の前に付けるだけです。たとえば、次のようにすべての名前の先頭に「dynamicbutton_」を追加します

<form>
  <input type="submit" name="dynamicbutton_alpha" value="Alpha">
  <input type="submit" name="dynamicbutton_bravo" value="Bravo">
</form>

次に、サーブレットで、 ServletRequest.getAttributeNames()を呼び出して、このプレフィックスを持つ値を探します。

于 2012-06-29T13:00:57.420 に答える