尝试将项目拆分为少数子模块。 我创建了子模块: /模块/公共 /模块/购物
现在我正在尝试将名称空间转换为包含新结构的新名称空间。
我的控制员:
package controllers.common;
public class Index extends Controller {}
我的模特:
package models.common;
@Entity
public class AppMode {}
我的观点:
@(AppModeForm: Form[models.common.AppMode], CurrentMode: Boolean)
@helper.form(common.routes.CMS.appModeSubmit, 'id -> "form") {}
我一直都会遇到错误。 F.e: 视图中的错误:
reference to common is ambiguous; it is imported twice in the same scope by import controllers._ and import models._
[error] /home/kd/Application/modules/common/app/views/CMS/AppModeView.scala.html:9: reference to common is ambiguous;
[error] it is imported twice in the same scope by
[error] import controllers._
[error] and import models._
[error] @helper.form(common.routes.CMS.appModeSubmit, 'id -> "form") {
[error] ^
[error] one error found
答案 0 :(得分:2)
models
和controllers
会自动导入到播放模板中,因此会导致问题,您可能不必将它们命名为相同的(例如,将包结构转换为{{ 1}}然后显式地从那里导入你想要的东西。当然,因为可能有不止一个叫做路由的东西,你仍然会遇到一些重载问题(但你可以通过重命名为当前范围导入的东西来解决这个问题:
common.{models, controllers}
更简单的选择是明确指定包,如下所示:
@import controllers.common.{routes => commonRoutes}
@helper.form(commonRoutes.CMS.appModeSubmit, 'id -> "form")