在模板中使用依赖注入播放2.5

时间:2018-08-13 13:53:27

标签: java scala playframework playframework-2.5 twirl

我升级到Play 2.5,并将所有内容移至依赖注入。 UiCommonService类现在可以使用了,可以注入,以前是静态的。

这是控制器的外观。

public Result index() {
    if (CurrentUserService.isAuthenticated()) {
        return ok(mainPage.render(CurrentUserService.getUserStateVariables(),
                CurrentUserService.getCurrentUser(),
                configService.getGoogleAnalyticsKey()));
    } else {
        return redirect("/login");
    }
}

这是我的scala模板的样子,它使用@import命令来使用类中的静态方法。

@(variables: String, authorisedUser: models.security.UserSession, gaKey: String)

@import services.ui.UiCommonService

@layout.masterPage(UiCommonService.getSimpleHeaderAttributes(), styles){
    // my custom layout code
}

我读到要使用依赖注入,必须将它包含在@this属性中。

@this(uiCommonService: services.ui.UiCommonService)

@(variables: String, authorisedUser: models.security.UserSession, gaKey: String)

@layout.masterPage(uiCommonService.getSimpleHeaderAttributes(), styles){
    // my custom layout code
}

但是现在我的控制器controller.index()方法出现错误。

mainPage.scala.html:1: too many arguments for method apply: ()play.twirl.api.HtmlFormat.Appendable in class mainPage

0 个答案:

没有答案