2012-12-11 70 views
3

這應該是基礎知識,但我在發佈dojo上的多個參數到休息端點時遇到了問題。我在後臺通過resteasy暴露了以下方法。有多個參數的方法的Dojo/JSON發佈請求?

@POST() 
@Path("/updateProduct") 
@Consumes(MediaType.APPLICATION_JSON) 
public void updateGeneralSettings(String session,Product product) { 
    System.out.println("session"+session); 
    System.out.println("product"+product.toString); 
} 

這對產品作爲參數非常合適。我還沒有弄清楚如何用另一個參數來構建jason字符串。產品數據只是從表單綁定,這是我想附加的一些附加參數(即會話)。

jsonData = dojo.toJson(product) 

var handler = request.post(url, { 
    data: jsonData, 
    headers: { 
     "Content-Type": 'application/json; charset=utf-8', 
     "Accept": "application/json" 
    } 
}); 

欣賞如果你們可以給我一些解決方案。

+0

怎麼u得到的產品?它是'domForm.toObject()'嗎? – coder247

+0

由於「dojo.toJson(產品)」的東西給了+1,這挽救了我的生命。似乎Dojo不喜歡它,而只是傳遞一個「json」變量,而不通過這個函數。 – Cesar

回答

3

嘗試增加參數名稱到您的方法簽名:

public void updateGeneralSettings(@FormParam("session") String session, @FormParam("product") Product product) 

,然後是這樣的:

var handler = request.post(url, { 
    data: { 
     session: session, 
     product: jsonData 
    }, 
    headers: { 
     "Content-Type": 'application/json; charset=utf-8', 
     "Accept": "application/json" 
    } 
}); 
相關問題