我读了这个问题
我有相同的实现。不仅它不起作用,而且在调试中,我什至从未输入此代码!
object MyRuntimeEnvironment extends RuntimeEnvironment.Default[BasicUser] {
override val userService: UserService[BasicUser] = new SlickUserService
override lazy val authenticatorService: AuthenticatorService[BasicUser] = new AuthenticatorService[BasicUser](
new CookieAuthenticatorBuilder[BasicUser](new SlickAuthenticatorStore, idGenerator),
new HttpHeaderAuthenticatorBuilder[BasicUser](new SlickAuthenticatorStore, idGenerator)
)
override lazy val viewTemplates: ViewTemplates = new CustomTemplatesController(this)
}
和
class CustomTemplatesController(env: RuntimeEnvironment[_]) extends ViewTemplates {
implicit val implicitEnv = env
override def getLoginPage(form: Form[(String, String)],
msg: Option[String] = None)(implicit request: RequestHeader, lang: Lang): Html = {
//securesocial.views.html.login(form, msg)(request, lang, env)
views.html.custom_login(form, msg)(request, lang, env)
}
override def getSignUpPage(form: Form[RegistrationInfo], token: String)(implicit request: RequestHeader, lang: Lang): Html = {
securesocial.views.html.Registration.signUp(form, token)(request, lang, env)
}
}
我想我剩下的唯一选择是从secureSocial github代码复制粘贴控制器并更改名为...的模板。
任何的想法 ?
您需要告诉play框架以加载您的环境配置。通常,这是通过创建一个模块来完成的(假设MyRuntimeEnvironment是在名为Service的程序包中定义的):
package modules;
import com.google.inject.AbstractModule;
import securesocial.core.RuntimeEnvironment;
import service.MyRuntimeEnvironment;
public class EnvironmentModule extends AbstractModule{
@Override
protected void configure() {
MyRuntimeEnvironment environment = new MyRuntimeEnvironment();
bind(RuntimeEnvironment.class).toInstance(environment);
}
}
在您的application.conf中:
play.modules.enabled += "modules.EnvironmentModule"
这应该引导您的自定义环境配置并加载您的自定义模板。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句