2012-12-18 71 views
2

我需要在我的表單中輸入2個輸入,一個用於日期,另一個用於時間。在我的模型中,它只是java.util.Date類型的一個屬性。使用Play框架2處理生成html並將輸入字段綁定到模型中的date屬性的最佳做法是什麼?Play中的輸入!日期和時間?

請注意,如果我使用字段構造函數,我無法按照需要佈置窗體。我需要第一行的標籤,第二行的2個輸入以及第三行的驗證錯誤。我應該只使用原始html嗎?如果我這樣做,我是否仍然可以訪問驗證錯誤和約束?

+1

我用了兩個不同的領域(原始的HTML)的一些jQuery插件(日期+時間選擇器),用於該任務,然後創建有效的日期通過加入保存前的值,工作,反正,我很好奇別人的意見,你也可以找到一個單一的jQuery日期時間選擇器插件,對於我最後的任務單獨的領域才更合適。 – biesior

+0

也許[這](http://stackoverflow.com/questions/8561717/how-to-get-a-datetime-input-in-a-play-crud-form)biesior幫助 – alexvetter

+0

,你能夠初始化日期輸入與來自模型的值?你是否能夠顯示驗證錯誤?如果你使用一個字段構造函數,那些東西會自動處理,所以我想知道如何處理它,而不是一個。 – Brian

回答

3

如果您在模型中使用兩個單獨的字段,綁定肯定會更容易。一個想法是創建一個綁定到表單提交的中間類。

// Controller 

public static class FormSubmission { 
    public Date date; 
    public Date time; 
} 

public static Result submitForm() { 
    Form<FormSubmission> filledForm = form(FormSubmission.class).bindFromRequest(); 
    if (filledForm.hasErrors()) { 
    return badRequest(); 
    } else { 
    ModelClass model = new ModelClass(); // fetch first if you update 
    // Copy all values from form submission to the model 
    model.dateAndTime = combineDateAndTime(filledForm.get().date, filledForm.get().time); 
    } 
    return ok(); 
} 

// View 
@(form: Form[FormSubmission]) 
... 

(我知道這並不能幫助,但像他這樣的任務是在斯卡拉極其微不足道的。)

相關問題