Java 将列表对象从控制器传递到视图时出现播放框架编译错误

Java 将列表对象从控制器传递到视图时出现播放框架编译错误,java,scala,playframework,Java,Scala,Playframework,我在控制器中有一个函数,该函数返回用户模型记录的列表-我正在使用模板: public Result getAllUsers() { List<User> users = User.find.all(); return ok(searchusers.render(form(Login.class, users))); } 当我在命令行的activator中编译时,我收到以下错误消息: [PlayStartApp] $ compile [info] Compiling

我在控制器中有一个函数,该函数返回用户模型记录的列表-我正在使用模板:

public Result getAllUsers() {
    List<User> users = User.find.all();
    return ok(searchusers.render(form(Login.class, users)));
}
当我在命令行的activator中编译时,我收到以下错误消息:

[PlayStartApp] $ compile
[info] Compiling 1 Scala source and 1 Java source to C:\WebDev\git\PlayAuthentic
ate\target\scala-2.10\classes...
[error] C:\WebDev\git\PlayAuthenticate\app\controllers\Application.java:209: met
hod render in class views.html.searchusers cannot be applied to given types;
[error]   required: play.data.Form<controllers.Application.Login>,java.util.List
<models.User>
[error]   found: play.data.Form<controllers.Application.Login>
[error]   reason: actual and formal argument lists differ in length
[error] searchusers.render
[error] C:\WebDev\git\PlayAuthenticate\app\controllers\Application.java:215: no
suitable method found for form(java.lang.Class<controllers.Application.Login>,ja
va.util.List<models.User>)
[error]     method play.data.Form.<T>form(java.lang.Class<T>,java.lang.Class<?>)
 is not applicable
[error]       (cannot infer type-variable(s) T
[error]         (argument mismatch; java.util.List<models.User> cannot be conver
ted to java.lang.Class<?>))
[error]     method play.data.Form.<T>form(java.lang.String,java.lang.Class<T>,ja
va.lang.Class<?>) is not applicable
[error]       (cannot infer type-variable(s) T
[error]         (actual and formal argument lists differ in length))
[error]     method play.data.Form.<T>form(java.lang.String,java.lang.Class<T>) i
s not applicable
[error]       (cannot infer type-variable(s) T
[error]         (argument mismatch; java.lang.Class<controllers.Application.Logi
n> cannot be converted to java.lang.String))
[error]     method play.data.Form.<T>form(java.lang.Class<T>) is not applicable
[error]       (cannot infer type-variable(s) T
[error]         (actual and formal argument lists differ in length))
[error] form
[info] Some messages have been simplified; recompile with -Xdiags:verbose to get
 full output
[error] (compile:compileIncremental) javac returned nonzero exit code
[PlayStartApp]$compile
[信息]将1个Scala源代码和1个Java源代码编译为C:\WebDev\git\PlayAuthentic
ate\target\scala-2.10\classes。。。
[错误]C:\WebDev\git\PlayAuthenticate\app\controllers\Application.java:209:met
hod render in class views.html.searchusers不能应用于给定类型;
[错误]必需:play.data.Form,java.util.List
找到[错误]:play.data.Form
[错误]原因:实际参数列表和正式参数列表长度不同
[错误]searchusers.render
[错误]C:\WebDev\git\PlayAuthenticate\app\controllers\Application.java:215:no
为表单找到合适的方法(java.lang.Class,ja
va.util.List)
[错误]方法play.data.Form.Form(java.lang.Class,java.lang.Class)
不适用
[错误](无法推断类型变量T
[错误](参数不匹配;无法转换java.util.List)
ted到java.lang.Class)
[错误]方法play.data.Form.Form(java.lang.String,java.lang.Class,ja
va.lang.Class)不适用
[错误](无法推断类型变量T
[错误](实际参数列表和形式参数列表长度不同))
[错误]方法play.data.Form.Form(java.lang.String,java.lang.Class)i
这不适用
[错误](无法推断类型变量T
[错误](参数不匹配;java.lang.Class无法转换为java.lang.String))
[错误]方法play.data.Form.Form(java.lang.Class)不适用
[错误](无法推断类型变量T
[错误](实际参数列表和形式参数列表长度不同))
[错误]表单
[信息]一些信息已被简化;使用-Xdiags:verbose重新编译以获取
满输出
[error](compile:compileIncremental)javac返回了非零退出代码
我看了这篇文章,但还是有同样的问题:

任何帮助都会很好

编辑: 我删除了登录表单。代码现在是:

public Result getAllUsers() {
    List<User> users = User.find.all();
    return ok(searchusers.render(users));
}
公共结果getAllUsers(){
List users=User.find.all();
返回ok(searchusers.render(users));
}
我现在的看法是:

@(userList: List[User])


@main(null) {

<ul>
@for(user <- userList) {
  <li>@user.fullname</li>
} 
</ul>

}
@(用户列表:列表[用户])
@主(空){
    @对于(用户更改此行

    ok(searchusers.render(form(Login.class, users)))
    

    为了清楚起见

    Form[Application.Login] loginForm = form(Login.class)
    
    ok(searchusers.render(loginForm, users))
    
    您必须将表单作为第一个参数传递,用户作为第二个参数传递,但您试图将Login.class和用户传递给表单,这是错误的。

    更改此行

    ok(searchusers.render(form(Login.class, users)))
    

    为了清楚起见

    Form[Application.Login] loginForm = form(Login.class)
    
    ok(searchusers.render(loginForm, users))
    

    您必须将表单作为第一个参数传递,用户作为第二个参数传递,但您试图将Login.class和用户传递给表单,这是错误的。

    我更正了括号问题,但仍然收到以下消息:
    [错误]C:\WebDev\git\playeuthenticate\app\controllers\Application.java:209:met-hod render in class views.html.searchusers无法应用于给定类型;[error]必需的:play.data.Form,java.util.List[error]找到的:play.data.Form[error]原因:实际参数列表和形式参数列表长度不同[error]searchusers.render
    @Dan…同样的问题。像这样使用它
    searchusers.render(form(Login.class),users)
    @Dan您没有将所需数量的参数传递给render@Dan使用这个
    Form[Application.Login]loginForm=Form(Login.class)ok(searchusers.render(loginForm,users))
    我的代码如下:
    返回ok(searchusers.render(form(Login.class),users));
    我有两个参数从控制器传递到视图。对于“render”-我需要传递多少个参数?我认为必须同时匹配控制器和视图。我更正了括号问题,但我仍然收到以下消息:
    [error]C:\WebDev\git\playdauthenticate\app\controllers\Application.java:209:met-hod render in class views.html.searchusers无法应用于给定的类型;[error]必需:play.data.Form,java.util.List[error]found:play.data.Form[error]原因:实际参数列表和形式参数列表的长度不同[error]searchusers.render
    @Dan…同样的问题。像这样使用
    searchusers.render(Form(Login.class),users)
    @Dan您没有将所需数量的参数传递给render@Dan使用此
    Form[Application.Login]loginForm=Form(Login.class)ok(searchusers.render(loginForm,users))
    我的代码是:
    返回ok(searchusers.render(Form(Login.class),users));
    我有两个参数正在从控制器传递到视图。对于“渲染”-我需要传递多少个参数?我认为必须同时匹配控制器和视图。看起来您使用了错误的视图文件看起来您使用了错误的视图文件
    Form[Application.Login] loginForm = form(Login.class)
    
    ok(searchusers.render(loginForm, users))