2012-10-10 21 views
2

考慮以下三類,C是B的子類。B是A的字段。 如何傳遞包含類C的實例的類A的實例它的領域,從JSP頁面到Spring Controller方法?如何使用Spring MVC DataBinding實例化子類

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;} 
} 

樣品春季控制器:

@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> 

回答