在视图创建中,我使用@ leaveform.value.get.empno来显示就绪并正常工作.问题只发生在插入错误期间([NoSuchElementException:None.get]).
问题:
>问题是返回错误没有value属性.还有什么可以用来获得价值?
>我可以跳过@inputText的只读字段吗?请参阅下面的代码:
// ***** CONTROLLER *****// val leaveform = Form[LeaveModel]( mapping( "empno" -> nonEmptyText, "name" -> nonEmptyText )((no, empno) => LeaveModel(empno, name)) ((leave: LeaveModel) => Some(leave.empno, leave.name)) ) def create = withAuth { username => implicit request => // Define default values val empno = "STUDENT" val name = "" // Set default values val filledForm = leaveform.fill(LeaveModel(empno,name)) Ok(html.leave.form(filledForm)) } def insert = Action ( implicit request => { leaveform.bindFromRequest.fold( error => { BadRequest(html.leave.form(error)) // Question 1. Here is the error. }, leave => { LeaveModel.insert(leave) Redirect(routes.indexController.index()) } ) } ) // ***** VIEW START***** // @(leaveform: Form[LeaveModel]) @leaveform.value.get.empno @helper.form( action = (routes.LeaveController.update(oid)), 'id -> "leaveform") { @inputText(leaveform("empno")) // Question 2. @inputText(leaveform("name")) }使用表单助手不是强制性的.如果您使用它们,您可以只读传递属性或使用CSS为字段设置样式,使其看起来只读.
> CSS禁用Twitter引导程序:
@inputText( editForm("createdOn"), 'id -> "createdOn", 'class -> "input-xlarge disabled", '_label -> Messages("createdOn"), '_help -> "" )
>传递可选属性:readonly
@inputText( editForm("createdOn"), 'id -> "createdOn", 'class -> "input-xlarge", '_label -> Messages("createdOn"), 'readonly -> "readonly", '_help -> " This is read only" )
>您也可以不重新发送该字段,但显示其值:
<span class="date">Created on: @editForm("createdOn").value</span>
>更新2018-01-24
Play字段现在返回一个Optional,see the docs.这意味着您可以从字段中获取值,如:
> @form(“fieldName”).getValue.get(可以抛出NPE)> @form(“fieldName”).getValue.getOrElse(“defaultValue”)
精彩评论