1

現在、次の問題に直面しています。誰かが私を助けてくれれば幸いです。私はJSFにかなり慣れていません...

次のアーキテクチャの JSF アプリケーションがあります。 メインの index.html サイトには、ユーザーの画面解像度パラメーターを使用して XMLHttpRequest をサーブレットに開く Javascript が含まれています。サーブレットはリクエストを受信し、画面解像度パラメータを抽出してセッション Bean オブジェクトに送信します。

String wth = request.getParameter("width");
String hgt = request.getParameter("heigh");
HttpSession session = request.getSession(true);
Object o = session.getAttribute("mainSessionBean");
MainSessionBean mainSessionBean = (MainSessionBean) o;
mainSessionBean.setScreenWidth(wth);
mainSessionBean.setScreenHeight(hgt);

現在、これは独自の方法で機能します。問題は、最初のページ (index.html) でセッション Bean オブジェクトにパラメーターがないにもかかわらず、セッション Bean にパラメーターがある別のサイトに移動する必要があることです。これは、セッション Bean オブジェクトが作成される前に index.html がレンダリング/作成されることを意味すると思います。別のサイトに移動する場合、セッション Bean オブジェクトには必要な画面サイズの値があります。つまり、ユーザーの画面解像度に応じて JSF 要素を動的に設定できますが、2 番目にアクセスしたページ以降に限られます。

私が達成したいのは、Javascript がサーブレットに対して XMLHttpRequest を開始し、サーブレットがセッション Bean を呼び出し、必要な画面サイズの解像度を渡し、最初のページが作成されたときに必要なパラメーターが既に配置されていることです。

これを正しい方法で行っているかどうかは完全にはわかりませんが、アドバイス、適切な種類のリソースへのリンクをいただければ幸いです。

4

1 に答える 1

0

プロセス:

  1. ブラウザがサーバーにHTTPリクエストを送信します

  2. サーバーがセッションを初期化し、index.htmlページで応答します

  3. JavaScriptが画面サイズを送り返します

ポイント2で画面のサイズをどのように利用できるようにしますか?最善の方法は、ポイント3の後で、index.htmlページを自動的にリロードすることです(セッションの最初のリクエストであるかどうかを確認し、実際のログインhtmlが送信されない場合は、JSとリダイレクトを送信するだけです)。

于 2012-11-03T15:12:59.910 に答える