临时验证+依赖注入

时间:2015-07-31 07:21:29

标签: playframework dependency-injection playframework-2.4

我使用Play 2.4 with Java。我创建了一个简单的对象:

public class User {

    @Constraints.Required
    public String email;
    public String password;

    public String validate() {
    }
}

我使用此对象在我的控制器中创建表单:

public MyController extends Controller {

    public Result index() {
        return ok(mypage.render(Form.form(User.class)));
    }

    public Result submit() {
        Form<User> userForm = Form.form(User.class).bindFromRequest();
        ...
    }
}

现在,我已经有了一个我想要在这个对象中注入的服务,并调用它的一个方法,例如:

public class User {

    @Inject MyService myService;

    @Constraints.Required
    public String email;
    public String password;

    public String validate() {
        return myService.authenticate(email, password);
    }
}

执行此操作时,调用bindFromRequest()方法时会得到RuntimeException: java.lang.reflect.InvocationTargetException。当我尝试调用myService的方法authenticate时,会出现NullPointerException。 是否正确注入了服务?

在特定情况下是否有一些特殊的事情 - 当请求绑定到表单对象时,validate()方法会被自动调用这一事实?

0 个答案:

没有答案