1
我创建了一个简单的登录提交表单使用playframework和scala,而无需连接任何数据库。类型不匹配;找到:play.api.data.Form [controllers.Application.Userdata] required:play.api.data.Form [(String,String)]
我application.scala
这是我的控制器我写的代码
import play.api._
import play.api.mvc._
import play.api.data._
import play.api.data.Forms._
import play.api.mvc.Request
import views.html._
case class Userdata(email:String,password:String)
object Application extends Controller {
case class Userdata(email:String,password:String)
val userForm = Form(
mapping(
"email" -> text,
"password" -> text
)(Userdata.apply)(Userdata.unapply)
)
def usercheck = Action{ implicit request=>
userForm.bindFromRequest.fold(
formWithErrors => BadRequest(views.html.login(formWithErrors)),
Userdata => { Ok(views.html.index("congrates"))}
)}
def index() = Action {
implicit request=>
Ok(views.html.login(userForm))
}
和我的视图模板是login.scala.html
..
@(form: Form[(String,String)])
@import helper._
@form(routes.Application.usercheck){
<form class=frmuuser>
<input type=text placeholder=email id='emailid'>
<input type=password placeholder=password id='pwd'>
<input type=submit value=login id='enter'>
</form>
}
,但它不工作,并给了我错误
type mismatch; found : play.api.data.Form[controllers.Application.Userdata] required: play.api.data.Form[(String, String)]
在这个控制器线
formWithErrors => BadRequest(views.html.login(formWithErrors)),
什么是灵魂我的问题??
你能或不能添加@import在模板的开头? – 2014-11-23 17:21:26
我把case类放在控制器外面,并使用@(form:Form [Userdata]),但它给了我同样的错误。 – 2014-11-24 06:21:31
你能分享一个复制你的问题的示例项目吗?你还在使用什么版本的Play Framework? – tuxdna 2014-11-24 21:09:04