2012-06-11 115 views
1

進入Play 2.0,總體而言,風頭正勁,偉大的東西。實施DRY表格

無論如何,想知道如何在Play中實現DRY表單?如果您查看Computer Database Sample中的編輯示例&,您會看到表單元素重複。只有4個字段(在示例表單中)沒有什麼大不了的,但是當您處理大型複雜表單和/或處理多個CRUD模型時,重複成爲更大的維護問題。

在綁定結束時(form.bindFromRequestform.fill(Foo)),該實現對於創建/編輯操作非常優雅;模板層中是否有相應的解決方案?

回答

0

K,這裏就是我想出了以處理註冊,續展情況:

// views.subscription.signup.scala.html 
@(_form: Form[com.company.model.Subscription], target: play.api.mvc.Call) 
@import helper._ 

@cart("Foobar Registration") { 
    <h1>Join Foobar Today!</h1> 
    @form(action = target, 'id -> "subscriptionForm", 'class -> "form-horizontal") { 
    @fields(_form) // include formfields 
    } 
} 

// views.subscription.fields.scala.html 
@(_form: Form[com.company.model.Subscription]) 
@import helper._ 

@inputText(field = _form("firstName"), '_label-> "First Name*", 'class-> "required") 
@inputText(field = _form("lastName"), '_label-> "Last Name*", 'class-> "required") 
.... 

然後,更新,只需要創建一個相同的外殼爲signup.scala.html,但更新的標題和標題文本。

相同的原則適用於任何共享的創建/編輯表單狀態。