2014-09-26 99 views
0

我有簡單的形式,只有兩個領域我做了錯我的表單驗證

@Constraints.Required 
public String name; 
@Constraints.Required 
public String slug; 

呈現爲:

@helper.form(routes.Add.create()) { 
    <input type="text" name="name" id="new-category-name"/> 
    <input type="text" name="slug" id="new-category-slug"/> 
    <input type="submit" value="save"/> 
} 

而且我有一個問題,因爲當我首先沒有提交表單值,我看錯誤,這是確定的,但是當這個驗證後,我再次提交我的表單(這次與值),我再次看到我的錯誤

我有記錄器request.body()和form.errors:

[debug] application - DefaultRequestBody(Some(Map(name -> ArrayBuffer(name), slug -> ArrayBuffer(slug))),None,None,None,None,None,false) 
[debug] application - {name=[ValidationError(name,[error.required],[])], slug=[ValidationError(slug,[error.required],[])]} 

Thans對您有所幫助

我創建行動:

public Result create(){ 
    categoryForm = categoryForm.bindFromRequest(); 

    if(categoryForm.hasErrors()){ 
     return ok(add.render(categoryForm)); 
    } else { 
     Category category = new Category(); 
     CategoryForm cf = categoryForm.get(); 
     category.setName(cf.name); 
     category.setSlug(cf.slug); 
     categoryRepository.save(category); 
     return redirect(routes.Edit.edit(category.getId())); 
    } 
} 
+1

當我第一次提交沒有值的表單時,向我們展示'create'行動 – biesior 2014-09-26 14:50:03

+0

「,我看到錯誤,這是可以的,但是在驗證後,我再次提交表單(這次是值),我看到我的錯誤」 。從一開始就嘗試提交正確的表單會發生什麼? – c4k 2014-09-29 10:04:07

+0

當我提交這個表單正確,一切都很好,類別對象存儲在db – dwilda 2014-09-30 20:25:44

回答

0

嘗試使用相同的ID和名稱:

<input type="text" id="slug" name="slug"> 

你應該考慮使用play 2 helpers。有了它們,你一定會創造出正確的形式。

我警告你,使用名稱爲「name」或「id」的字段非常重要。它會產生衝突。我花了很多時間才明白某個id值是id會生成jquery錯誤。

+0

即使使用遊戲助手不是我的問題的解決方案 – dwilda 2014-09-26 13:52:25

+0

您是否嘗試在激活命令提示符下鍵入「乾淨」,然後「編譯」。 – Moebius 2014-09-29 08:31:01

+0

這些命令不是溶劑,因爲我已經切換到內置的幫助程序,我的問題仍然是一樣的 – dwilda 2014-09-30 20:29:04

相關問題