2014-11-21 81 views
2

结合play.data.Form在使用@JsonProperty我有下面的类映射属性从JsonNode

public static class Thing { 
    @JsonProperty("_name_") 
    String name; 
} 

,我试图将其绑定到表单和得到这个类的一个实例这样

ObjectNode node = Json.newObject(); 
node.put("_name_", "some name"); 

Form<Thing> thingForm = Form.form(Thing.class); 
thingForm = thingForm.bind(node); 
Thing thing = thingForm.get(); 

因此,我预计thing.name将是“某个名称”,但它不是,它是null。我明白@JsonProperty是用于Json(de)序列化,只是如果它有效,就试过。问题是如何用Play's Form来实现这一点?

我也试过Register a custom DataBinder如文档中所述,但其方法永远不会被调用。

任何帮助表示赞赏。

回答

0

您是否试过thingForm.bindFromRequest()而不是thingForm.bind()?我使用完全相同的东西,我用json数据制作ajax文章,它对我来说工作得很好。它看起来不像@JsonProperty()有什么关系。

你确定如果你想要上课Thing static?我假设你有你的表单属性的公共getter/setter。