gpt4 book ai didi

java - 无法应用渲染

转载 作者:行者123 更新时间:2023-11-30 08:22:01 25 4
gpt4 key购买 nike

我正在看书Learn Java for Web Development并尝试执行书中的代码示例。

我对 Play Framework 代码示例(第 8 章)有疑问。

异常(exception):

"render(java.util.List,play.data.Form) in views.html.index cannot be applied to (java.lang.String)"

Controller 类:

final static Form<Book> bookForm = Form.form(Book.class);  

public static Result books(){
return ok(views.html.index.render(Book.all(),bookForm));
}

查看 - index.scala.html

@(books: List[Book], bookForm: Form[Book])

@import helper._

@main("books") {

<h1>@books.size() book(s)</h1>

<ul>
@for(book <- books) {
<li>
@book.label

@form(routes.Application.deleteBook(book.id)) {
<input type="submit" value="Delete">
}
</li>
}
</ul>

<h2>Add a new book</h2>

@form(routes.Application.newBook()) {

@inputText(bookForm("label"))

<input type="submit" value="Create">

}

}

编辑:

1) 我刚在 Windows 8 机器上从头开始安装最新的 play 版本,目前是 Play 2.3.1 。我没有对 Play framework 做任何修改。这是我的第一个游戏项目

2) 完整错误(在 Eclipse 中):The method render(String) in the type index is not applicable for the arguments (List<Book>, Form<Book>)

3) 当我尝试刷新浏览器时,代码已编译,我可以在屏幕上看到 Book 表单

最佳答案

即使您的机器上安装了 Play 2.3.1,此特定项目在 project/plugins.sbt 的这一行中引用了 Play 2.2.0。文件:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.0")

所以它使用的是 Play 2.2.0,它将由 sbt 下载,而不是安装在您机器其他位置的 Play 版本。

除了错误消息,Eclipse 还显示文件名和行号。如果单击错误消息,它应该打开该文件。在那个项目中,它可能是 test/ApplicationTest.java文件,其中有这一行:

Content html = views.html.index.render("Your new application is ready.");

这是默认的新应用程序模板的一部分,应该对其进行修改。此特定行无法编译,因为 index查看期望作为参数 List<Book>, Form<Book>而不是 String .这在 views/index.scala.html 的这一行中说明文件:

@(books: List[Book], bookForm: Form[Book])

对于这个示例项目,解决方案是删除文件test/ApplicationTest.java ,因为它并没有真正增加值(value),因为这个测试不适用于这个项目。在生产项目中,应更新此文件,以便编译并通过测试。

尽管出现此错误,该项目仍在运行,因为该代码仅针对 test 执行目标。不过,Eclipse 将显示所有目标的错误。

关于java - 无法应用渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com