涉及对象模型的非法循环引用
illegal cyclic reference involving object models
当我尝试将列表传递到 Play 应用程序的视图页面时收到错误消息:
illegal cyclic reference involving object models
错误截图:
models.scala.html:
@(liValues: List[String])
@for(value <- liValues){
<li>@value</li>
}
路由文件中的条目:
GET /models/tictactoe controllers.ModelController.index
ModelController.scala 中的索引方法,我在其中传递值:
def index = Action {
Ok(views.html.models(List("Link1" , "Link2" , "Link3")))
}
完整的模型控制器:
package controllers
import javax.inject._
import play.api.libs.json.Json
import play.api.mvc._
/**
* This controller creates an `Action` to handle HTTP requests to the
* application's home page.
*/
@Singleton
class ModelController @Inject()(cc: ControllerComponents) extends AbstractController(cc) {
/**
* Create an Action to render an HTML page with a welcome message.
* The configuration in the `routes` file means that this method
* will be called when the application receives a `GET` request with
* a path of `/`.
*/
def index = Action {
Ok(views.html.models(List("Link1" , "Link2" , "Link3")))
}
def sj = Action {
Ok(Json.toJson(List(1,2,3)).toString());
}
}
我似乎没有在视图页面中正确声明列表值?
package models
/*
* Empty placeholder object to make sure templates keep compiling (due to
* imports in template files), even if projects don't have any models.
*/
object DummyPlaceHolder
干扰了你的 views.html.models
,它也有 models
,因此生成的模板 target/scala-2.13/twirl/main/views/html/models.template.scala
将有类似
的东西
import models._
object models extends ...
导致非法循环。尝试将模板名称从 views.html.models
更改为 views.html.model
.
当我尝试将列表传递到 Play 应用程序的视图页面时收到错误消息:
illegal cyclic reference involving object models
错误截图:
models.scala.html:
@(liValues: List[String])
@for(value <- liValues){
<li>@value</li>
}
路由文件中的条目:
GET /models/tictactoe controllers.ModelController.index
ModelController.scala 中的索引方法,我在其中传递值:
def index = Action {
Ok(views.html.models(List("Link1" , "Link2" , "Link3")))
}
完整的模型控制器:
package controllers
import javax.inject._
import play.api.libs.json.Json
import play.api.mvc._
/**
* This controller creates an `Action` to handle HTTP requests to the
* application's home page.
*/
@Singleton
class ModelController @Inject()(cc: ControllerComponents) extends AbstractController(cc) {
/**
* Create an Action to render an HTML page with a welcome message.
* The configuration in the `routes` file means that this method
* will be called when the application receives a `GET` request with
* a path of `/`.
*/
def index = Action {
Ok(views.html.models(List("Link1" , "Link2" , "Link3")))
}
def sj = Action {
Ok(Json.toJson(List(1,2,3)).toString());
}
}
我似乎没有在视图页面中正确声明列表值?
package models
/*
* Empty placeholder object to make sure templates keep compiling (due to
* imports in template files), even if projects don't have any models.
*/
object DummyPlaceHolder
干扰了你的 views.html.models
,它也有 models
,因此生成的模板 target/scala-2.13/twirl/main/views/html/models.template.scala
将有类似
import models._
object models extends ...
导致非法循环。尝试将模板名称从 views.html.models
更改为 views.html.model
.