2017-03-20 1 views
0

ich eine 2.5.10 Play-Anwendung haben und im Anschluss an die Dokumentation auf Form default values definiere ich eine Form wie folgt aus:Scala-Play: Warum werden die Standardwerte des Formulars nicht aufgenommen?

@Singleton 
class ComputeInSampleForm @Inject()(implicit val messagesApi: MessagesApi) { 
    val Instance = Form { 
    mapping(
     "impliedVolSpread" -> default(of[Double], 0.02), 
     "fundingRate" -> default(of[Double], 0.0), 
     "optionType" -> default(enum(OptionType), OptionType.Call), 
     "sampleStart" -> jodaDate, 
     "sampleEnd" -> jodaDate 
    )(ComputeInSampleParameters.apply)(ComputeInSampleParameters.unapply) 
    } 
} 

aber die Standardwerte werden durch die entsprechende Ansicht nicht abgeholt. Irgendwelche Ideen warum?

Antwort

1

Try default mit Mapping s Aufruf:

mapping(
     "impliedVolSpread" -> default(bigDecimal(scale = s, precision = p), 0.02), 
     ... 
) 

Sie können auch form.fill mit einer ComputeInSampleParameters Instanz rufen Sie die Standardwerte bereitstellt.

+0

Merkwürdig ... es funktioniert auch nicht. Sie müssen tatsächlich den zweiten Parameter zu 'default' als' BigDecimal.valueOf (0.02) ' –

+0

Ihre vorgeschlagene' form.fill' Alternative gearbeitet, aber ich habe keine Ahnung, warum die erste nicht funktioniert ... –

+0

Ich glaube Dies ist die Play-Dokumentation, die etwas unklar ist, was "default" in diesem Zusammenhang bedeutet. 'default' gibt ** den zu verwendenden Wert an, wenn in der Formularübergabe kein entsprechendes Feld vorhanden ist **. Wenn Sie die Standardwerte festlegen möchten, die beim Ankommen auf der Seite angezeigt werden sollen (d. H. Das "leere Formular"), dann ist 'form.fill()' in der Tat das, was Sie brauchen. – millhouse

Verwandte Themen