Как ввести что-то в форму

Начиная с версии 2.4.0, мы можем использовать DI-фреймворк.

Я пытаюсь использовать DI в моем приложении. Я переместил свои jpa-искатели из статических методов в моих классах моделей в методы на уровне сервиса, которые я внедряю в свои контроллеры.

Моя главная проблема заключается в том, что у меня есть некоторые формы с методом проверки, и в моем методе проверки я использую некоторые средства поиска.

Для примера в форме входа в систему я использую метод «User.authenticate». Теперь, когда я заменил этот статический метод на новый в UserSvc, я хочу добавить свой сервис в мою форму, но он не работает.

Кажется, что невозможно ввести что-то в форму, так как я могу решить мою проблему

public class MyController {
    // Inject here can be used in controller methods but not in the form validate method
    @Inject UserSvc userSvc;
    public static class Login {
        // Inject here is not filled : NPE
        @Inject UserSvc userSvc;
        public String email;
        public String password;
        public String validate() {
            // How can I use userSvc here ?
        }
    }

    @Transactional(readOnly = true)
    public Result authenticate() {
        Form<Login> loginForm = form(Login.class).bindFromRequest();

        if (loginForm.hasErrors()) {
            return badRequest(login.render(loginForm));
        } else {
            Secured.setUsername(loginForm.get().email);
            return redirectConnected();
        }
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос