Packages

case class Form[T](mapping: Mapping[T], data: Map[String, String], errors: Seq[FormError], value: Option[T]) extends Product with Serializable

Helper to manage HTML form description, submission and validation.

For example, a form handling a User case class submission:

import play.api.data._
import play.api.data.Forms._
import play.api.data.format.Formats._

val userForm = Form(
  mapping(
    "name" -> of[String],
    "age" -> of[Int],
    "email" -> of[String]
  )(User.apply)(User.unapply)
)
T

the type managed by this form

mapping

the form mapping, which describes all form fields

data

the current form data, used to display the form

errors

the collection of errors associated with this form

value

a concrete value of type T if the form submission was successful

Source
Form.scala
Linear Supertypes
Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Form
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Form(mapping: Mapping[T], data: Map[String, String], errors: Seq[FormError], value: Option[T])

    mapping

    the form mapping, which describes all form fields

    data

    the current form data, used to display the form

    errors

    the collection of errors associated with this form

    value

    a concrete value of type T if the form submission was successful

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply(key: String): Field

    Retrieves a field.

    Retrieves a field.

    For example:

    val usernameField = userForm("username")
    key

    the field name

    returns

    the field, returned even if the field does not exist

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def bind(data: JsValue, maxChars: Long, maxDepth: Int): Form[T]

    Binds data to this form, i.e.

    Binds data to this form, i.e. handles form submission.

    data

    Json data to submit

    maxChars

    The maximum number of chars allowed to be used in the intermediate map representation of the JSON. parse.DefaultMaxTextLength is recommended to passed for this parameter.

    maxDepth

    The maximum level of nesting for JSON objects and arrays.

    returns

    a copy of this form, filled with the new data

  7. def bind(data: JsValue, maxChars: Long): Form[T]

    Binds data to this form, i.e.

    Binds data to this form, i.e. handles form submission.

    data

    Json data to submit

    maxChars

    The maximum number of chars allowed to be used in the intermediate map representation of the JSON. parse.DefaultMaxTextLength is recommended to passed for this parameter.

    returns

    a copy of this form, filled with the new data

  8. def bind(data: Map[String, String]): Form[T]

    Binds data to this form, i.e.

    Binds data to this form, i.e. handles form submission.

    data

    the data to submit

    returns

    a copy of this form, filled with the new data

  9. def bindFromRequest(data: Map[String, Seq[String]]): Form[T]
  10. def bindFromRequest()(implicit request: Request[_], formBinding: FormBinding): Form[T]

    Binds request data to this form, i.e.

    Binds request data to this form, i.e. handles form submission.

    returns

    a copy of this form filled with the new data

  11. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  12. val constraints: Map[String, Seq[(String, Seq[Any])]]

    Constraints associated with this form, indexed by field name.

  13. val data: Map[String, String]
  14. def discardingErrors: Form[T]

    Discards this form’s errors

    Discards this form’s errors

    returns

    a copy of this form without errors

  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def error(key: String): Option[FormError]

    Retrieve the first error for this key.

    Retrieve the first error for this key.

    key

    field name.

  17. def errors(key: String): Seq[FormError]

    Retrieve all errors for this key.

    Retrieve all errors for this key.

    key

    field name.

  18. val errors: Seq[FormError]
  19. def errorsAsJson(implicit provider: MessagesProvider): JsValue

    Returns the form errors serialized as Json.

  20. def fill(value: T): Form[T]

    Fills this form with a existing value, used for edit forms.

    Fills this form with a existing value, used for edit forms.

    value

    an existing value of type T, used to fill this form

    returns

    a copy of this form filled with the new data

  21. def fillAndValidate(value: T): Form[T]

    Fills this form with a existing value, and performs a validation.

    Fills this form with a existing value, and performs a validation.

    value

    an existing value of type T, used to fill this form

    returns

    a copy of this form filled with the new data

  22. def fold[R](hasErrors: (Form[T]) => R, success: (T) => R): R

    Handles form results.

    Handles form results. Either the form has errors, or the submission was a success and a concrete value is available.

    For example:

    anyForm.bindFromRequest().fold(
       f => redisplayForm(f),
       t => handleValidFormSubmission(t)
    )
    R

    common result type

    hasErrors

    a function to handle forms with errors

    success

    a function to handle form submission success

    returns

    a result R.

  23. def forField[R](key: String)(handler: (Field) => R): R

    Applies a function for a field.

    Applies a function for a field.

    For example:

    userForm.forField("username") { field =>
      <input type="text" name={field.name} value={field.value.getOrElse("")} />
    }
    R

    result type

    key

    field name

    handler

    field handler (transform the field to R)

  24. val formats: Map[String, (String, Seq[Any])]

    Formats associated to this form, indexed by field name.

    Formats associated to this form, indexed by field name. *

  25. def get: T

    Returns the concrete value, if the submission was a success.

    Returns the concrete value, if the submission was a success.

    Note that this method fails with an Exception if this form has errors.

  26. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  27. def globalError: Option[FormError]

    Retrieves the first global error, if it exists, i.e.

    Retrieves the first global error, if it exists, i.e. an error without any key.

    returns

    an error

  28. def globalErrors: Seq[FormError]

    Retrieves all global errors, i.e.

    Retrieves all global errors, i.e. errors without a key.

    returns

    all global errors

  29. def hasErrors: Boolean

    Returns true if there is an error related to this form.

  30. def hasGlobalErrors: Boolean

    Returns true if there is a global error related to this form.

  31. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  32. val mapping: Mapping[T]
  33. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  34. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  35. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  36. def productElementNames: Iterator[String]
    Definition Classes
    Product
  37. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  38. val value: Option[T]
  39. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  40. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  41. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  42. def withError(key: String, message: String, args: Any*): Form[T]

    Convenient overloaded method adding an error to this form

    Convenient overloaded method adding an error to this form

    key

    Key of the field having the error

    message

    Error message

    args

    Error message arguments

    returns

    a copy of this form with the added error

  43. def withError(error: FormError): Form[T]

    Adds an error to this form

    Adds an error to this form

    error

    Error to add

    returns

    a copy of this form with the added error

  44. def withGlobalError(message: String, args: Any*): Form[T]

    Adds a global error to this form

    Adds a global error to this form

    message

    Error message

    args

    Error message arguments

    returns

    a copy of this form with the added global error

Deprecated Value Members

  1. def bind(data: JsValue): Form[T]

    Binds data to this form, i.e.

    Binds data to this form, i.e. handles form submission.

    data

    Json data to submit

    returns

    a copy of this form, filled with the new data

    Annotations
    @deprecated
    Deprecated

    (Since version 2.8.3) Use bind(JsValue, Int) instead to specify the maximum chars that should be consumed by the flattened form representation of the JSON

  2. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped