0

ページがポートレットに読み込まれるときのブラウザ/クライアント時間を取得するにはどうすればよいですか。クライアントのタイム ゾーンに基づいてアルゴリズムを実行する必要があります。つまり、ポートレットのレンダリング フェーズ中に、ブラウザのタイム ゾーンを取得する必要があります。もしそうなら、どのように可能ですか?

どんな助けでも大歓迎です。

ありがとう、マイケル

4

2 に答える 2

1

HTTP リクエストにはブラウザ/クライアントの時間に関する情報が含まれていないと思うので、javascript を使用して何らかの方法で回避する必要があります。この問題に関する記事をここで見つけました。

状況に応じて、使用できるいくつかの戦略を考えることができます。

  1. 前のポータル ページで JavaScript を使用してクライアント時間を取得し、フォーム送信を介してターゲット ページへのリクエストに含めます。
  2. 最初のページ読み込み時にポートレット ビューを「お待ちください」メッセージに設定し、AJAX 要求を介してクライアント時間をサーバーに送信します。要求が返されたら、必要に応じてポートレット ビューを更新します。JSR 286 ポートレットを作成している場合、ポートレットは ResourceServingPortlet インターフェースを実装して、マークアップ フラグメントをレンダリングするためのフック (つまり、serveResource メソッド) を提供できます。詳細については、JSR 286 仕様をここからダウンロードできます(「ポートレットを介したフラグメントの提供」に関する第 14 章を参照してください)。
  3. ポートレット プリファレンスを使用して、ポートレットのデフォルトのタイム ゾーンを設定します。必要に応じて、ユーザーが別のタイム ゾーンを選択できるようにします。これにより、ブラウザや JavaScript にまったく依存することなく、サポートするタイム ゾーンを完全に制御できます。ポートレットの設定は、上記の #2 で述べた仕様の第 17 章で説明されています。
于 2009-11-24T12:17:29.857 に答える
0

ポートレットはわかりませんが、javascript インターフェイスがある場合は、おそらく dateObject.getTimezoneOffset()を呼び出しますか?

于 2009-11-12T05:13:20.760 に答える