2

次の3つのクラスについて考えてみます。CはBのサブクラスです。BはAのフィールドです。JSPページからSpringControllerメソッドに、フィールドとしてクラスCのインスタンスを含むクラスAのインスタンスを渡す方法は?

class A{
     private B b;
     public B getB(){return b;}
     public void setB( B b){ this.b = b;}
}

class B{
     private int id;     
     public int getId(){return id;}
     public void setId(int id){this.id = id;}
}
class C extends B{
     private name;
     public String getName(){return name;}
     public void setName(String name){this.name = name;}
}

サンプルのSpringコントローラー:

@Controller
public class Handler{
     @RequestMapping("/work")
     public String work(@RequestParam( "objA" ) A objA ){
         if( C.getClass().isInstance( objA.getB() ) ){
               System.out.println("It works.");
          }
     }
}

想定されるJSPページですが、機能しません。

<form method="post" action="work" commandName="objA" >

        <input type="submit" value="submit" /><br/>

        <input type="hidden" name="b.name" value="name" /><br/>
        <input type="hidden" name="b.id" value="1" /><br/>
</form>
4

1 に答える 1

1

Jackson を使用してデータをバインドできると思います。次に、 Jackson ポリモーフィック タイプ処理の問題として扱うことができます。これ は、Spring mvc コンテキストで Jackson と ajax を使用する方法に関するリンクです。

于 2012-10-18T03:32:45.027 に答える