gpt4 book ai didi

scala - Play Framework 2 模板表单 None.get

转载 作者:行者123 更新时间:2023-12-01 01:05:14 26 4
gpt4 key购买 nike

我是 Play 2 和 Scala 的新手,我的模板中出现了一个奇怪的异常:

Execution exception
-------------------

[NoSuchElementException: None.get]
In /home/nic/workspaces/scala-ide/scims/app/views/persons/detailTabs/personal.scala.html at line 4.

1. @(personId: Long, personDetailTabForm: Form[dto.PersonDetailTab])(implicit formOptions: dto.PersonFormOptions)
2. @implicitFieldConstructor = @{ helper.FieldConstructor(support.bs3HorizField.f) }
3.
4. @persons.detail("personal", personDetailTabForm.get.firstName) {

personDetailTabForm 是一个空的表单对象,定义为:
  val personalDetailTabForm: Form[PersonDetailTab] = Form(
mapping(
"firstName" -> text.verifying(nonEmpty),
"middleName" -> text,
"lastName" -> text.verifying(nonEmpty),
"gender" -> text,
"dateOfBirth" -> jodaDate("yyyy-MM-dd"),
"ethnicity" -> text,
"maritalStatus" -> text,
"password" -> text
)(PersonDetailTab.apply)(PersonDetailTab.unapply)
)

关于这里有什么问题的任何想法?

我的印象是一个变量必须是一个选项才能获得一个无?

干杯
NFV

最佳答案

您调用getpersonDetailTabForm - 查找它是 ScalaDoc:http://www.playframework.com/documentation/2.2.x/api/scala/index.html#play.api.data.Form - 似乎 .get返回 PersonDetailTab表单持有的值(value) - 如果,正如文档所说,“提交成功”。

您看到的是 None.get异常(exception),因为很可能是 play.api.data.Form[T]只需使用 Option[T]get返回 Some[T]当表单包含有效值和 None除此以外。

所以在你的第 4 行,在 scala 模板中,你有类似的东西

personDetailTabForm.get.firstName

那是 String ,但只有当表单的底层 PersonDetailTab本身就有值(value)。我不确定您想做什么,但是您正在处理一种情况,即无论出于何种原因,您想要在模板中呈现的值可能不存在。在这种情况下:
@personDetailTabForm.value.map{ personDetailTab => 
@persons.detail("personal", personDetailTab.firstName) // { ... whatever else
// anything else you want to render
} getOrElse { // errors in the form; personDetailTabForm cannot yield a valid personDetailTab
<h3> oops, what went wrong here? </h2>

}

这一切都取决于你想在 personal.scala.html 中做什么. Form[T]是个好办法
处理一些输入和验证 T东西,但如果你只是展示它,
如果您有 T (在您的情况下 PersonDetailTab )只需将其传递给模板即可。如果您的 PersonDetailTab可能存在也可能不存在,那么只需使用 Option[PersonDetailTab]而是 Form[PersonDetailTab] .

关于scala - Play Framework 2 模板表单 None.get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com