我是Play 2 Framework的新手。
我有以下代码:
import play.*;
import play.mvc.*;
import play.data.*;
import static play.data.Form.*;
import models.*;
import views.html.*;
public class Application extends Controller{
public static Result index(){
return ok(
views.html.index.render(Task.find.all())
);
}
}
我基本上试图填充Task的内容,将其传递给我的视图(“index.html”)。
但是我在intelliJ
上一直收到以下错误render无法应用于java.utils.List
任何人都可以帮我这个吗?谢谢
修改
我尝试过这里给出的解决方案:
没有运气。
编辑2 我试过这个:
<!-- Line below specify paramters required from controller -->
@main("Dashboard") {
<header>
<hgroup>
<h1>Dashboard</h1>
<h2>Tasks over all projects</h2>
</hgroup>
</header>
}
这个
@import models.Task
@(tasks: List[Task])
@main("Dashboard") {
<header>
<hgroup>
<h1>Dashboard</h1>
<h2>Tasks over all projects</h2>
</hgroup>
</header>
}
而且:
@import models.Task
@(tasks: List[models.Task])
@main("Dashboard") {
<header>
<hgroup>
<h1>Dashboard</h1>
<h2>Tasks over all projects</h2>
</hgroup>
</header>
然而,它仍然给我同样的错误 这是:
未找到:值任务,如果我将其追溯到控制器,则会抛出错误,说明render()无法接受List的值类型。
编辑3:
我修改了我的代码如下
我的控制者
public static Result index(){
List<User> users = User.find.all();
return ok(
views.html.index.render(users)
);
}
和我的观点:
@(users: java.util.List) /* You could also use @(users: List) if you want */
@main("Dashboard") {
<header>
<hgroup>
<h1>Dashboard</h1>
<h2>Tasks over all projects</h2>
</hgroup>
</header>
<section>
</section>
}
这次我得到以下(编译)错误:
trait List takes type parameters
答案 0 :(得分:2)
解决了......
事实证明,这个过程并不像我预期的那么直接。
这就是我做的
我的控制器:
/* Do not forget to import the necessary library */
public class Application extends Controller{
public static Result index(){
List<User> users = User.find.all();
return ok(
views.html.index.render(users)
);
}
}
我的观点:
@(users: List[models.User])
@main("Dashboard") {
<header>
<hgroup>
<h1>Dashboard</h1>
<h2>Tasks over all projects</h2>
</hgroup>
</header>
<section>
@for(user <- users){
<p>@user.name (@user.email)</p>
}
</section>
}