как переопределить API CalculateRenderKitId - PullRequest
1 голос
/ 24 ноября 2011

Я делаю веб-страницу, и теперь я хочу сделать мобильную версию этой веб-страницы. У меня вопрос, как я могу использовать одно и то же приложение для работы как для настольного компьютера, так и для мобильного браузера (я использую Fennec verson of mozilla). как моё приложение может определить, к какому браузеру оно подключено (настольное или мобильное). Я использую jsf 2.0 и Primefaces 2.2. Я где-то читал, что, переопределяя API CalculateRitKitId, мы можем это сделать. Кто-нибудь сделал это? (У меня есть отдельные страницы для мобильной версии и рабочего стола, но бэк-бины одинаковы)

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Вам нужно переопределить обработчик представления JSF, так что просто напишите класс, который расширяет ViewHandlerWrapper и переопределяет figureRenderKitId там.

http://docs.oracle.com/javaee/5/api/javax/faces/application/ViewHandlerWrapper.html

После этого сконфигурируйте ваш обработчик вида в face-config.xml.

1 голос
/ 24 ноября 2011

как мое приложение может определить, доступно ли оно через какой браузер (настольный или мобильный)

Вы можете проверить заголовки запроса, чтобы определить клиент

String userAgent = request.getHeader("User-Agent");

и вот список пользовательского агента

...