2012-03-13 14 views
2

私のクライアントのユーザエージェントをチェックしたいと思います。 (それが可能だ場合はブラウザの種類/バージョン)jsfでユーザエージェントを確認してください

しかし、私はそれを行う方法がわからない...

はあなたの助けをいただき、ありがとうございます。

答えて

4

これは問題ありません。私が使用 :

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

はあなたの助けをいただき、ありがとうございます。 JSF2ページで

+0

もしあなたが彼の答えを受け入れるなら、ThiefMasterにはいいだろう。 :) –

5

User-Agent httpヘッダーで送信されます。

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

[OK]を、ありがとうございましたが、 'context'は何ですか?どのように私はそれを初期化できますか? – Akabane

5

、あなたはリクエストオブジェクトを経由して直接ユーザーエージェントを印刷することができます。

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

しかし ;-)

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html"> 
H-名前空間を使用することを忘れないでくださいを

これで、関数を使ってさまざまなブラウザに対応することができます。

例:

<?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> 
+7

'#{header ['user-agent']}'は簡単です。 – BalusC

関連する問題