我是 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/