是否有可能以某种方式覆盖Play中Secure-Module的Secure.java类的登录方法!框架,以便显示另一个版本的登录表单?
在我的情况下,如果检测到移动浏览器,我想显示登录表单的移动版本。
我知道我不应该更改Secure.java类本身,但我真的没有看到任何其他解决此问题的方法。
答案 0 :(得分:3)
正如其他posts中所述,您的Play中有request
!控制器。因此,在此请求中,您可以询问哪个代理正在尝试查看您的网站:
String agentInfo = request.headers.get("user-agent");
您可以确定将为此代理呈现哪个模板:
if (agentType.isWhatEverHeIs) {
renderTemplate("Application\mobileTemplateForBadPractise.html");
} else {
render();
}
但我鼓励你做的是responsive
webdevelopment。尽可能智能地创建模板,让模板和css和javascript执行此操作,并将您的业务逻辑保留在控制器中。
您可以使用Twitter Bootstrap来实现这一目标,但还有更多!与Skeleton一样。
您甚至在模板中获得了request
对象,以便您可以根据代理选择(或不)在模板中渲染内容。
答案 1 :(得分:0)
更简单,只需创建/覆盖secure/login.html
模板并使用响应式设计:媒体查询。无需更改控制器或检查代理等。