2012-06-02 34 views
0

我可能會錯過一些東西,因爲我還沒有完全理解一些基礎知識。 在我的控制器我有類似玩框架1.2.5 - 試圖發佈一個Person對象到控制器

functiona(Person person){ 
System.out.println(p.firstName); 
} 

東西的看法有以下

$.post("/validatePerson",{person: [{name:"first",value:"last"}]},function(result){ 
alert('done'); 
} 

看起來,如果信息傳遞,但是沒有填充的成員。 我也嘗試添加以下typebinder

@Global 
public class PersonJsonObjectBinder implements TypeBinder<Person> {  
    @Override  
    public Person bind(String name, 
         Annotation[] annotations, 
         String value, Class actualClass, 
         Type genericType) throws Exception 
         {        
         return new Gson().fromJson(value, Person.class); 
         } 
        //return new JsonParser().parse(value) ;} 
} 

你的幫助是極大的appriciated。

+0

確定人應該是一個數組?它應該是我認爲的一個對象:'{person:{name:「first」,value:「last」}}' –

回答

0

如果要直接綁定到控制器參數中,則需要將Person數據作爲請求uri的一部分傳入。

$.post("/validatePerson?person.firstname=john&person.lastname=doe",function(result){ 
alert('done'); 

}

查看參數person.firstname如何參數名稱人身及財產相匹配。

爲了從Json綁定,您可以將body作爲json元素並使用GSON構建器進行反序列化。像下面

JsonElement jsonElement = new JsonParser().parse(body); 
Person person = new GsonBuilder().create().fromJson(jsonElement,Person.class) 

事情再次JSON歡迎使用屬性需要匹配Person類的屬性e.g

{person: [{firstname:"john",lastname:"doe"}]} 
相關問題