gpt4 book ai didi

jsf - 在 JSF 中是否有更优雅的基于用户代理切换模板的方法?

转载 作者:行者123 更新时间:2023-12-04 06:13:25 26 4
gpt4 key购买 nike

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

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

另一种方法是将登陆页面的内容(包括模板化部分)包装在一个 panelGroup 中,使用 render="#{mobileDetector.isMobile()}",让后备 bean 执行 scriptlet 否则会执行的操作。但我认为它会削弱模板,而且它不适用于头部。

那么 - 有没有更好的方法?

最佳答案

要么使用单独的子域,例如mobile.example.com 用于移动用户,(www.)example.com 用于桌面用户,和/或嗅探用户代理。有可用的公共(public) API:

  • http://user-agent-string.info
  • http://www.useragentstring.com

  • 或者,您可以使用 CSS 根据 media type 隐藏/更改部分 HTML 标记。 .

    <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)">

    关于jsf - 在 JSF 中是否有更优雅的基于用户代理切换模板的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518543/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com