【问题标题】:How to convert the play.api.mvc.Call to Class[?]?如何将 play.api.mvc.Call 转换为 Class[?]?
【发布时间】:2013-09-18 21:34:58
【问题描述】:

我是新手,遇到的错误是:

[error] F:\Kepler\wefarm\app\views\login.scala.html:8: type mismatch;
[error]  found   : play.api.mvc.Call
[error]  required: Class[?]
[error]    @form(routes.Session.authenticate()) {
[error]                                     ^

           

我在 Session.java 中定义了身份验证函数

public class Session extends Controller {
....
public static Result authenticate() {
    Form<Login> loginForm = form(Login.class).bindFromRequest();
    if (loginForm.hasErrors()) {
        return redirect(routes.Session.login());
    } else {
        session("connected", loginForm.get().email);
        return redirect(routes.Application.index());
    }
}
...
}

错误发生在 login.scala.html:

@(loginForm: Form[Session.Login])

@import play.data.Form.form
@main("WeFarm") {  
<h1>Farmer login</h1>
@form(routes.Session.authenticate()) {    ///////------error   happens here
@inputText(farmerForm("email"), '_label -> "Email")
@inputPassword(farmerForm("password"), '_label -> "Password")
<input type="submit" class="btn btn-primary" value="Login">

}

我想将认证结果放入表单,表单无法识别。 如何让@form 接受结果?

【问题讨论】:

  • 我还在自学游戏,但你不需要为动作分配反向路线,就像example
  • This question 也可能有帮助

标签: java forms playframework playframework-2.0


【解决方案1】:

据我了解,您需要将结果分配给表单参数

@form(action = routes.Session.authenticate()) {

您可以查看documentation/example 和此previous question 了解更多详情

【讨论】:

    【解决方案2】:

    首先我要明确一点,我不了解 Play 框架。但是你可以通过getClass()方法获取类

    @form(routes.Session.authenticate().getClass())
    

    请参考您需要在@form 注释中传递的内容。

    【讨论】:

      猜你喜欢
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      相关资源
      最近更新 更多