Проверьте User-Agent с помощью jsf - PullRequest
3 голосов
/ 13 марта 2012

Я хочу проверить пользовательский агент моего клиента.(Если возможно, тип / версия браузера)

Но я не знаю, как это сделать ...

Спасибо за вашу помощь.

Ответы [ 3 ]

7 голосов
/ 15 марта 2012

Все нормально, я нашел.Я использую:

final HttpServletRequest request =(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
final String userAgent = request.getHeader("user-agent");
System.out.println(userAgent);

Спасибо за вашу помощь.

5 голосов
/ 17 декабря 2012

На странице JSF2 вы можете распечатать пользовательский агент напрямую через объект запроса:

<h:outputText value="#{request.getHeader('user-agent')}" />

Но не забудьте использовать h-namespace ; -)

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">

Затем вы можете отвечать через функции в разные браузеры.

Пример:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:fn="http://java.sun.com/jsp/jstl/functions">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <p>
            User-Agent: <h:outputText value="#{request.getHeader('user-agent')}" />
        </p>       
        <h:panelGroup rendered="#{fn:containsIgnoreCase(request.getHeader('User-Agent'), 'Firefox')}">
            <p>
                Hello Firefox!
            </p>
        </h:panelGroup>
    </h:body>
</html>
5 голосов
/ 13 марта 2012

Отправляется в заголовке User-Agent http.

HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
String userAgent = request.getHeader("user-agent");
...