涉及对象模型的非法循环引用

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());

  }
}

我似乎没有在视图页面中正确声明列表值?

好像DummyPlaceHolder.scala

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.