1

私はすべてのリファレンス実装で Java EE 6 を使用していますが、ページにアクセスするデバイスに基づいて異なる応答を生成するにはどうすればよいでしょうか? JSF ページを開発するときは、PC で実行されているブラウザーを対象としています。ただし、ユーザーがスマートフォンでページを閲覧するときに、別の HTML 構造 (つまり、別の JSF ページを使用) を生成したいと考えています。

「CSS メディア クエリを使用しないのはなぜですか?」と疑問に思うでしょう。はい、できますが、それではレイアウトの制御が制限されます。誰かがこれを行うためにどこから何を読み始めるべきかについてのヒントを教えてもらえますか?

私はSpringを使いたくありません。彼らがこのようなものを持っていることは知っています。

4

3 に答える 3

1

私はSpringを使いたくありません。彼らがこのようなものを持っていることは知っています。

それなら作り直してください()。

彼らがどのようにそれをしたか見てみましょう。以下に引用されているSpring Mobileのドキュメントによると、

LiteDeviceResolver

デフォルトの実装は、 Wordpress Mobile Packの一部として実装された「ライト」検出アルゴリズムDeviceResolverに基づいています。このリゾルバーは、モバイル デバイスの存在のみを検出し、特定の機能は検出しません。このリゾルバーを有効にするために特別な構成は必要ありません。デフォルトの DeviceResolverHandlerInterceptor を構成するだけで有効になります。

彼らは、このPHP コードこの Java コードに移植したようです。同じことができます (ライセンス規則に注意してください!)。このための最も賢明な場所は、検出の結果に応じてリダイレクトを送信するサーブレット フィルターです。

于 2012-04-12T01:21:00.333 に答える
0

HTTP ヘッダーの検査

ユーザーエージェント

これは、サーブレット API を使用して取得できます: http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getHeader%28java.lang.String%29

于 2012-04-09T17:12:13.960 に答える
0

HTTP_USER_AGENT を見る必要があると思います。

Java の経験はありませんが、System.getEnv("HTTP_USER_AGENT") を参照してください。

ユーザー エージェントの文字列名を返す必要があります。一般的なユーザー エージェントの Web リストで見つける必要があるため、それらをモバイルまたは非モバイルとして簡単に分類できます。

于 2012-04-09T16:26:57.947 に答える