2009-06-19 4 views
2

JSPやその他の関連するは、JSTLのような軽量のテクノロジがHTTP POST「データグループ化」を実行するか、またはPHPのやり方でフォーム要素「インデックス登録」をサポートしていますか?例えばHTMLフォームからJSPまたはJavaサーブレットに複数の「レコードセット」をPOSTする方法は?

、次の入力でHTMLフォームを作成することができます。

<input type="text" name="person[1][name]" /> 
<input type="text" name="person[1][age]" /> 
<input type="text" name="person[2][name]" /> 
<input type="text" name="person[2][age]" /> 

...とPHPは自動的にネストされた連想配列の中にそれを解析します。 JSP、Javaサーブレット、または関連する仕様やツールは、この種の翻訳をそのまま提供しますか?

目標は、複数の「レコードグループ」を1つのフォームに提出し、JSPまたはサーブレットでサーバー側を処理することです。


要件:

  • 機能春、Strutsの、など
  • ようには完全なフレームワークは、私は車輪の再発明避けるためにしようとしないんだJavaScriptの
  • に頼ることはできません私自身の命名規則とマニュアル文字列解析/正規表現

関連リンク:

答えて

5

あなたはループを使用して、入力フィールドを作成するために検討すべきである

<input type="text" name="personNames" /> 
<input type="text" name="personAges" /> 
<input type="text" name="personNames" /> 
<input type="text" name="personAges" /> 

、これを試してみてください、あなたは必要ありません。後置するにはnameも。

String[] names = request.getParameterValues("personNames"); 
String[] ages = request.getParameterValues("personAges"); 

これは、HTMLで定義されているのと同じ順序で表示されます。それでは、以下のようにループしてください。

for(String name : names) { 
    System.out.println(name); 
} 
+1

良い考えですが、私はそれを早く試しました。入力の1つがチェックボックスの場合、セットは同期しなくなります。チェックされていないボックスは送信されず、カウントが破棄されます。たとえば、チェックボックス付きのレコードが10あり、最後の5レコードを選択した場合は、最初のレコードを選択したものと見なされます。 – drfloob

+0

この場合、チェックボックスの値からどのレコードが送信されるかがわかります。とにかく、あなたが意味を持たない人は、価値がありません。だから、なぜ迷惑をかける。あなたはそれらのすべてのnullを仮定することができます、なぜですか? –

+1

@Vinegar:チェックボックスを別の方法で処理する必要があることを意味します。チェックボックスを使用すると、上記の提案は機能しません。はいチェックボックスの配列が表示されます。 を実行し、代わりに数字を読み取る必要があります。 – Stobor

関連する問題