java - bindFromRequest 验证 null

标签 java playframework

我是 Java Play 框架的新手,我正在尝试让身份验证正常工作。所以我正在关注这个教程:https://www.playframework.com/documentation/2.1.0/JavaGuide4

这是我的代码:

public static Result authenticate()
{
    Form<Login> loginForm = form(Login.class).bindFromRequest();

    return ok(loginForm.toString());

}


public static class Login
{
    public String email;
    public String password;

    public String validate()
    {
        return "VALIDATE "+email+password;
    }
}

在 autheticate() 方法中,我可以看到表单提交的值,但 Login 类中的 validate() 方法看不到它们(变量始终为 null)。loginForm.toString() 的输出包含:

Form(of=class controllers.Application$Login, data={email=asdf@asdf, password=asdf}, value=None, errors={=[ValidationError(,[VALIDATE nullnull],[])]})

正如你所看到的,数据被接收了。但是在validate方法中数据突然等于null。那么我该如何解决这个问题呢?

最佳答案

你没有提到你如何调用validate(),但我认为这可能会起作用,做一些类似的事情:

public static Result authenticate() {
    Form<Login> form = form(Login.class).bindFromRequest();

    // handle errors
    if (!form.hasErrors()) {
        Login login = form.get();
        Logger.debug(login.validate());
    } else {
        // bad request
    }
}

这对我有用。

关于java - bindFromRequest 验证 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26566538/

相关文章:

java - 如何将 javaFX 14 应用程序导出为 IntelliJ 中的可执行文件?

java - Java中将二维数组的索引添加到List的末尾

java - Android Spinner 中的 Firebase 数据

playframework - Play框架处理请求超时

java - 在 Play 中启用断言!发展模式

java - 如何将一对一的基本元素加入到实体中?

java - Java 的 assertEquals 方法可靠吗?

java - Play Framework 2.1 IDE 设置

testing - play 2.5 render view 测试,获取flash messages

java - 如何在 GenericDao 中检索常用值(IpAddress、TenantId)?