是否有可能以某种方式覆盖安全模块的Play.java类的登录方法!框架,以便显示另一个版本的登录表单?在Secure class Play中渲染移动版登录!框架
在我的情况下,如果检测到移动浏览器,我想显示移动版的登录表单。
我知道我不应该改变Secure.java类本身,但我实在看不出任何其他办法解决这个问题。
是否有可能以某种方式覆盖安全模块的Play.java类的登录方法!框架,以便显示另一个版本的登录表单?在Secure class Play中渲染移动版登录!框架
在我的情况下,如果检测到移动浏览器,我想显示移动版的登录表单。
我知道我不应该改变Secure.java类本身,但我实在看不出任何其他办法解决这个问题。
正如在其他讨论posts你在你玩的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
对象里面你的模板,让你可以根据试剂可选地呈现在你的模板的东西(或没有)。
就更简单了,只需创建/覆盖secure/login.html
模板,并使用响应式设计:媒体查询。无需更改控制器或检查代理或其他任何东西。
你为什么不被允许更改Secure.java类?如果这就是你的应用程序需要的,那就去做吧。安全模块毕竟是相当简单的,它不可能处理所有不同的情况。劈开:) – Tommi 2012-02-23 12:47:12
问题是我和一些同事一起工作,并且这些更改不会上传到svn(因为安全是一个模块=不在svn上)。我现在只需将登录和身份验证方法复制到我的安全类中,然后根据我的移动需求进行修改即可解决此问题。 – ruptha 2012-02-23 13:03:49