

お世話になっております。

環境  
Eclipse 4.4  
GAE/J 1.9.30  
Servlet 2.5  
※ServletFileUploadを使用しています。

[code]

    <form action="/test" method="post" enctype="multipart/form-data">
      <input type="text" name="name">
      <input type="text" name="age">
      <fieldset name="child">
        <input type="text" name="name">
        <input type="text" name="age">
      </fieldset>
      <input type="submit">
    </form>
    
[/code]

このようなformを送信する際にServlet側でパラメータを受け取っています  
Servletでは

[code]

    public class Parent {
        private String name;
        private int age;
        private Child child;
    }
    public class Child {
       private String name;
       private int age;
    }
    
[/code]

このような2つのデータクラスを持っています。

そこでformのnameとageをParentのフィールドに、fieldset内のnameとageを  
Childのフィールドに格納し、ParentのchildにChildを格納したいと考えています。

Servletではリクエストパラメータを順に取り出し、リフレクションを使用することでParentの  
フィールドにはセットできている状況です。  
しかしChildのフィールドにリクエストパラメータをセットするにはどのようにしたらいいのでしょうか？

ParentからChildのフィールドを取得できない&できたとして同じname属性なのでどれがchild  
のname属性を持ったinputの値かわからない状況です。

パラメータを1つずつ取り出す際にfieldset内のnameまたはageだと判断できるといいのですが。。

階層化と表現したのは  
name, age, child: {name, age}  
のようなイメージで取得したいためです。  
またここには定義していないですが、画像の送信も行うのでmultipartである必要があります。

宜しくお願い致します。


CC BY-SA 3.0
2016-02-15T09:13:33.710
22101
2016-02-15T09:47:28.703
297
question
java html http google-app-engine servlet
formからPOST送信される階層化された値をパラメータとして取得したい。


実際に送信されるデータを確認してみるとわかりますが、`fieldset`要素によるグルーピングはデータ構造には反映されません。それぞれの`input`要素で`name`属性がユニークになるよう修正してください。


CC BY-SA 3.0
2016-02-15T09:47:28.703
22102
2016-02-15T09:47:28.703
5793
22101
answer