2011-03-02 2 views

답변

9

글래스 피쉬 V3. 가장 쉬운 방법은 원시 HTTP User-Agent 헤더를 표시하는 것입니다.

<h:outputText value="#{header['user-agent']}" /> 

이것은 항상 크고 추악한 문자열로 모든 사람에게 해독 할 수있는 것은 아닙니다.

HTTP User-Agent 헤더를 정확한 브라우저 제조업체/버전 및 플랫폼 제조업체/버전 (예 : useragentstring.com)과 같은 유용한 정보로 변환 할 수있는 API가 있습니다.

API를 사용하여 User-Agent 헤더를 사용 가능한 부분으로 변환 한 후에는 관리 빈을 사용하여 JSF에서 관심있는 부분을 일반적인 방법으로 표시 할 수 있어야합니다.

+0

덕분에 많이 @BalusC – Selvin

12

은 콩에이 방법을 넣어 : 다음

public String getBrowserName() { 
    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
    String userAgent = externalContext.getRequestHeaderMap().get("User-Agent"); 

    if(userAgent.contains("MSIE")){ 
     return "Internet Explorer"; 
    } 
    if(userAgent.contains("Firefox")){ 
     return "Firefox"; 
    } 
    if(userAgent.contains("Chrome")){ 
     return "Chrome"; 
    } 
    if(userAgent.contains("Opera")){ 
     return "Opera"; 
    } 
    if(userAgent.contains("Safari")){ 
     return "Safari"; 
    } 
    return "Unknown"; 
} 

과 :

<h:outputText value="Browser: #{yourBean.browserName}" /> 
+0

을 인터넷 탐색기 그것은 "알 수없는"를 반환, 그 이유는 무엇입니까? –

+0

@LizLamperouge 당신은 userAgent 변수를 출력하고 다른 "if contains"블록을 추가 할 수 있습니다. –

+0

감사합니다 @ Andrés Canavesi, "userAgent 변수를 인쇄하고"포함하는 경우 "다른 블록을 추가 할 수 있지만 무엇을 사용합니까? –

관련 문제