首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JSF中,有没有更好的方式来切换基于用户代理的模板?

在JSF中,有没有更好的方式来切换基于用户代理的模板?
EN

Stack Overflow用户
提问于 2011-09-23 00:54:36
回答 1查看 584关注 0票数 2

我们有一个用JSF编写的web应用程序,并且正在尝试添加一个移动版本。理想情况下,我们应该有一个单独的文件夹,里面有模板、CRUD和资源(例如jQuery移动),我们的登录页面将能够根据标题的用户代理属性选择合适的模板。

一种方法是使用scriptlet并重定向到mobile/index.xhtml - end,但是人们不喜欢scriptlet :D

另一种方法是将登录页面的内容(包括模板部分)包装在一个带有rendered="#{mobileDetector.isMobile()}“的panelGroup中,让一个支持bean执行该脚本将执行的操作。但我认为这有点削弱了模板,而且它不适用于head部分。

所以--有没有更好的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-23 01:05:30

或者使用单独的子域,例如用于移动用户的mobile.example.com和用于桌面用户的(www.)example.com,和/或嗅探用户代理。在以下位置提供公共API:

或者,您可以使用CSS来隐藏/更改基于media type的部分HTML标记。

代码语言:javascript
复制
<link rel="stylesheet" href="css/desktop.css" media="screen,projection">
<link rel="stylesheet" href="css/mobile.css" media="handheld">
<link rel="stylesheet" href="css/print.css" media="print">
<link rel="stylesheet" href="css/iphone.css" media="all and (max-device-width: 480px)">
<link rel="stylesheet" href="css/ipad-portrait.css" media="all and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait)">
<link rel="stylesheet" href="css/ipad-landscape.css" media="all and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape)">
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7518543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档