次の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>