Java在播放bindFromRequest时引发异常
我正试图绑定来自Java在播放bindFromRequest时引发异常,java,binding,playframework-2.0,Java,Binding,Playframework 2.0,我正试图绑定来自POST的一些数据,但出于某种原因,它一直抛出异常。但奇怪的是,我有一个几乎相同的对象,绑定得很好。我的一些代码如下: public static Result login() { return ok( login.render(Form.form(Login.class)) ); } public static Result authenticate() { Form<Login> loginForm = Form.form(Login.class).b
POST
的一些数据,但出于某种原因,它一直抛出异常。但奇怪的是,我有一个几乎相同的对象,绑定得很好。我的一些代码如下:
public static Result login() {
return ok(
login.render(Form.form(Login.class))
);
}
public static Result authenticate() {
Form<Login> loginForm = Form.form(Login.class).bindFromRequest();
// Do stuff
}
public static Result createUser() {
return ok(createUser.render(Form.form(NewUser.class)));
}
public static Result createUserPost() {
Form<NewUser> newUserForm = Form.form(NewUser.class).bindFromRequest();
// Do stuff
}
public static class Login {
public String userName;
public String password;
public String validate(){
Logger.info("userName: %s, Password: %s", userName, password);
if (User.validate(userName, password) == null){
return "Invalid username or password";
}
return null;
}
}
public static class NewUser {
public String userName;
public String password;
public String validate() {
// TODO: Better error messages
if (Validation.username(userName) == null && Validation.password(password) == null) {
return null;
}
else {
return "The username or password is not valid.";
}
}
}
公共静态结果登录(){
返回ok(
login.render(Form.Form(login.class))
);
}
公共静态结果验证(){
Form loginForm=Form.Form(Login.class).bindFromRequest();
//做事
}
公共静态结果createUser(){
返回ok(createUser.render(Form.Form(NewUser.class));
}
公共静态结果createUserPost(){
Form newUserForm=Form.Form(NewUser.class).bindFromRequest();
//做事
}
公共静态类登录{
公共字符串用户名;
公共字符串密码;
公共字符串验证(){
Logger.info(“用户名:%s,密码:%s”,用户名,密码);
if(User.validate(用户名、密码)==null){
返回“无效用户名或密码”;
}
返回null;
}
}
公共静态类NewUser{
公共字符串用户名;
公共字符串密码;
公共字符串验证(){
//TODO:更好的错误消息
if(Validation.username(username)==null&&Validation.password(password)==null){
返回null;
}
否则{
return“用户名或密码无效。”;
}
}
}
出于某种原因,authenticate
方法绑定了Login
类,但是createUserPost
方法没有绑定NewUser
类(除了表单类型为Login
或NewUser
之外,两个视图完全相同)。更奇怪的是,如果我更改createUser
,createUserPost
,以及使用Login
类的视图,它绑定得很好
有人知道为什么会这样吗 因此,出于某种原因,Play(或Java)不喜欢在同一个Java文件中有多个静态类。一旦我们将这两个类重构为它们自己的文件,它就工作得很好