2013-02-20 60 views
0

尝试从打版2.0.4一个项目迁移到2.1.0我有此错误:在所有控制器的形式发布迁移形式播放2.0.4播放-2.1.0

type mismatch found: play.api.data.Form[...] 
       required: play.data.Form[...] 

与所有类型的表单[...]。在控制器,它看起来是这样的:

import play.api._ 
import data.Form 
import data.Forms._ 

val someform = Form(
     tuple(
     "name" -> text, 
     "email" -> text 
     ) 
) 

的观点开始如下:

@(form : Form[...]) 

这一切激起以上,但只与与2.0.4版本中创建的,然后迁移项目中提到的错误到2.1.0。 而且用2.1.0从零开始创建项目,所有这些工作就像一个魅力。为什么这样? 另外如果我指定像(迁移项目)的观点完全合格的名称:

@(form : play.api.data.Form[...]) it works fine.... 
+1

你在'Build.scala'中使用了'javaCore'依赖吗?如果是这样,请将其删除。 – 2013-02-20 20:45:11

+0

谢谢,我明白了......我真的添加了'javaCore',并错过了它将使项目-java项目在迁移指南中提到。 – arussinov 2013-02-20 21:05:18

+0

您可以添加解决方案作为答案吗? – EECOLOR 2013-02-20 22:01:35

回答

1

你必须从你的appDependencies在Build.scala删除javaCore。否则,Play会将您的项目视为Java项目,这意味着您的模板期望Java API,在您的案例中为play.data.Form,而不是在play.api.data.Form的Scala API。

请注意,这种行为不同于2.0.x,您可以将Java和Scala混合使用而不会出现问题。