私はplayframework 2とextjs4でWebサービスを構築しています。今日まで私はあらゆる障害を克服することができました。しかし、これは私が一人で対処できないものです。私はtutorialに続きましたが、それは私を助けませんでした。まあ、当初はやりました。私はそれが働いたことを知って、私はデータベース(mongodb)にいくつかの値を追加することができた。私はそれが重要である場合を疑うが、:サーバーのフレームワークとextjsでPOST値を受け取れません
- すべてがうまく働いていた、私は私はJavaでいくつかの他の方法を書いたデシベル
- にいくつかのテストデータを追加
- 私はMongoのコレクション
- サーバー上
db.Category.remove()
を使用 :今
私はExt.FormPanel
2のフィールドを持つフォームから任意の値を受け取ることができません
Model
クラスを対応するようになります:
@MongoCollection(name = "Category")
public class CategoryModel{
private String categoryName;
private String categoryDescription;
@JsonProperty("categoryName")
public String getName() {
return categoryName;
}
@JsonProperty("categoryName")
public void setName(String name) {
this.categoryName = name;
}
@JsonProperty("categoryDescription")
public String getDescription() {
return categoryDescription;
}
@JsonProperty("categoryDescription")
public void setDescription(String description) {
this.categoryDescription = description;
}
public String toString(){
ObjectMapper mapper = new ObjectMapper();
String json = null;
try {
json = mapper.writeValueAsString(this);
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return json;
}
}
そして、私は値を受信したい場所を最後に、ここにある:プレイコンソールから
Form<CategoryModel> categoryForm = form(CategoryModel.class);
System.out.println(categoryForm);
出力:
Form(of=class kunto.models.CategoryModel, data={}, value=None, errors={})
FirebugはPOST値が存在していることを示します
categoryDescription test
categoryName test
をそして私は、この特定の要求のためのサーバ側で定義されたのconf /ルートでPOST
要求タイプを持っている:正しく送信。
私は2つの質問があります:
- それを修正するために何をすべきかを?
- さらに重要なことに、なぜそれが起こったのですか?
EDIT @adisが示唆したように:
Form<CategoryModel> categoryForm = form(CategoryModel.class).bindFromRequest();
System.out.println(categoryForm);
System.out.println(categoryForm.data());
出力:
Form(of=class kunto.models.CategoryModel, data={categoryName=test, categoryDescription=test}, value=Some({"categoryName":null,"categoryDescription":null}), errors={})
{categoryName=test, categoryDescription=test}
私も
CategoryModel categoryModel = form(CategoryModel.class).bindFromRequest().get();
System.out.println(categoryModel);
をチェックし、それが出力:{"categoryName":null,"categoryDescription":null}
を
誰でもこれを説明できますか? Contraints.Required @:これはあなたのような、それらを定義した場合にも、あなたのモデルのプロパティで確認しないことができます
Form<CategoryModel> categoryForm = form(CategoryModel.class).bindFromRequest();
:
缶にバインドされている間、説明のためのゲッターが「categoryDescription」にバインドされている。..上記のあなたは、あなたのコード内の不一致を持って
する必要がありますあなたは試してみてください:Form categoryForm = form(CategoryModel.class).bindFromRequest(); –
adis
あなたのコメントのおかげで@adis進歩を見ることができます:D小さな更新で私の質問を編集しました – maialithar
toString()メソッドが間違っているかもしれませんか?あなたがオブジェクトを印刷するとき、javaは常にtoString()メソッドを呼び出しています。あなたはtoString()メソッドを削除して、印刷するのではなく、eclipseでデバッグするだけですか? '@ Required'について – adis