2017-08-12 1 views
0

このフォームを持つ:Playframeworkデフォルト値

case class DatabaseServerForAdd(name: String, address: String, port: Int, autoCheck: Boolean, serverIdentityId: Int) 

object DatabaseServerForAdd { 
    val databaseServerForAddForm = Form(
    mapping(
     "name" -> nonEmptyText(minLength = 2), 
     "address" -> nonEmptyText, 
     "port" -> number, 
     "autoCheck" -> boolean, 
     "serverIdentityId" -> number 
    )(DatabaseServerForAdd.apply)(DatabaseServerForAdd.unapply) 
) 
} 

私はちょうどフィールドautoChecktrueのデフォルト値を持つようにしたいが、私は方法を見つけることができません。

デフォルトを処理する唯一の方法は、fillメソッドを使用することですが、完全なオブジェクトを提供する必要があります。他のフィールドにデフォルト値を設定する必要はありません。 portserverIdentityIdに0を入れたくありません。

また、ドキュメントで使用されているdefaultは、フォームが送信されたときにのみ動作し、作成時には動作しません。

答えて

0

私は前に言ったようにメソッドを使用することができますが、悲しいことに、応答は悲しいことですが、完全なオブジェクトです。

おすすめのことは、カスタムオブジェクトを作成しているように見えます。カスタムオブジェクトを作成すると、必須ではないすべてのフィールドをOptionとして置くことができます。そのため、必要なプロペラティだけを読み込みます。

noneのオプションフィールドはすべて、空のフィールドとして設定されます(たとえば、Intの場合は0)。

編集

Playframework 2.6は、フォームのデフォルトを持っていhttps://www.playframework.com/documentation/2.6.x/ScalaForms#default-values