Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据访问页面的设备生成不同的HTML?_Java_Jsf_Jakarta Ee - Fatal编程技术网

Java 如何根据访问页面的设备生成不同的HTML?

Java 如何根据访问页面的设备生成不同的HTML?,java,jsf,jakarta-ee,Java,Jsf,Jakarta Ee,我在所有参考实现中使用JavaEE6,我想知道如何根据访问页面的设备生成不同的响应?当我开发一个JSF页面时,我的目标是运行在PC上的浏览器。然而,当用户使用智能手机浏览页面时,我想生成另一个HTML结构(即,使用另一个JSF页面) 现在你想知道,“为什么不使用CSS媒体查询?”。是的,我可以,但那只能对布局进行有限的控制。有人能给我一些提示,从哪里开始,从什么开始阅读,来做这件事吗 我不想使用Spring,我知道他们有类似的功能。我认为您需要使用HTTP用户代理 没有Java方面的经验,但请参

我在所有参考实现中使用JavaEE6,我想知道如何根据访问页面的设备生成不同的响应?当我开发一个JSF页面时,我的目标是运行在PC上的浏览器。然而,当用户使用智能手机浏览页面时,我想生成另一个HTML结构(即,使用另一个JSF页面)

现在你想知道,“为什么不使用CSS媒体查询?”。是的,我可以,但那只能对布局进行有限的控制。有人能给我一些提示,从哪里开始,从什么开始阅读,来做这件事吗


我不想使用Spring,我知道他们有类似的功能。

我认为您需要使用HTTP用户代理

没有Java方面的经验,但请参考System.getEnv(“HTTP\u USER\u AGENT”)


它应该返回用户代理的字符串名称。您应该在web列表中找到常见的用户代理,这样您就可以轻松地将它们分类为移动或非移动。

我认为您需要查看HTTP用户代理

没有Java方面的经验,但请参考System.getEnv(“HTTP\u USER\u AGENT”)

它应该返回用户代理的字符串名称。您应该在常见用户代理的web列表中找到,这样您就可以轻松地将它们分类为移动或非移动。

检查HTTP头

用户代理

您可以使用ServletAPI来检索它:

检查HTTP头

用户代理

您可以使用Servlet API检索此内容:

我不想使用Spring,我知道他们有类似的东西

那就改头换面吧(咳嗽)

。根据下文引用的

LiteDeviceSolver 默认的
DeviceResolver
实现基于作为组件的一部分实现的“lite”。此解析器仅检测移动设备的存在,而不检测特定功能。启用此解析器不需要特殊配置,只需配置默认的DeviceSolverHandlerInterceptor,即可为您启用

看来他们已经搬来了。您也可以这样做(请注意许可证规则!)。最明智的做法是,根据检测结果发送重定向

我不想使用Spring,我知道他们有类似的东西

那就改头换面吧(咳嗽)

。根据下文引用的

LiteDeviceSolver 默认的
DeviceResolver
实现基于作为组件的一部分实现的“lite”。此解析器仅检测移动设备的存在,而不检测特定功能。启用此解析器不需要特殊配置,只需配置默认的DeviceSolverHandlerInterceptor,即可为您启用


看来他们已经搬来了。您也可以这样做(请注意许可证规则!)。最合理的地方是a,它将根据检测结果发送重定向。

如何使用它?至少举个例子,如何使用它?至少举一个例子。既然你想在服务器端解决这个问题,听起来你只是想知道哪个用户代理(读“浏览器”)正在访问你的网站,在这种情况下,你可以使用这个。但是,这种方法有一些缺点。因为您想在服务器端解决此问题,所以听起来您只是想知道哪个用户代理(阅读“浏览器”)正在访问您的站点,在这种情况下,您可以使用此方法。然而,这种方法也有一些不足之处。我该从哪里着手呢?如何为适合移动设备等的JSF页面提供服务?您可以使用用户代理,然后根据值(需要通过使用不同的客户端访问服务器来测试),生成一个或另一个页面-在JSF中,您将使用不同的导航。事实上,仔细想想,JSF与ServletAPI相去甚远,但仍然有一种方法可以实现,需要探索JSF文档以了解如何读取HTTP头。导航在faces-config.xml中,我希望这有帮助,我该从哪里开始呢?如何为适合移动设备等的JSF页面提供服务?您可以使用用户代理,然后根据值(需要通过使用不同的客户端访问服务器来测试),生成一个或另一个页面-在JSF中,您将使用不同的导航。事实上,仔细想想,JSF与ServletAPI相去甚远,但仍然有一种方法可以实现,需要探索JSF文档以了解如何读取HTTP头。导航位于faces-config.xml中,我希望这会有所帮助