0

2 つの異なるサーブレットから JSP ページ (1 つの jsp ページ) で複数の属性を取得する際に問題があります。JSP のロード時に両方の request.getAttribute() が実行され、そのうちの 1 つがまだサーブレットから「送信」されていないため、例外が発生します。

最初のサーブレットからこれを最初に送信します。

request.setAttribute("user", user);
RequestDispatcher dispatcher = request.getRequestDispatcher("success.jsp");
dispatcher.forward(request, response);

これは、JSPファイルから取得する方法です:

user = (User) request.getAttribute("user");
You are logged in as <%= user.getUsername() %>.

他のサーブレットからこれを送信します。

request.setAttribute("convertedValue", convertedValue);
RequestDispatcher dispatcher = request.getRequestDispatcher("success.jsp");
dispatcher.include(request, response);

そして、JSP でこれを取得します。

double value = (Double) request.getAttribute("convertedValue");

問題は、「まだそこにない」ものを手に入れることができないため、このようにすることができないことです。if(getAttribute!=null) のような if ステートメントを試してみましたが、あまり良くありません。

JSP ページの一部を更新すればうまくいくかもしれませんが、その方法はわかりません。私はAJAXにあまり慣れていません..

皆さんがこれで私を助けてくれることを本当に願っています!

前もって感謝します!

4

1 に答える 1

0

に設定する代わりに、request以下のようにユーザー オブジェクトをセッションに設定できるため、新しいリクエストごとにユーザー オブジェクトが消えず、セッションで使用できるようになります。

お気に入り

req.getSession().setAttribute("user",user);

そうしないと、リクエスト間で共有できません。

ありがとう 。

あなたの質問を正しく理解できたことを願っています。

于 2013-02-22T14:47:05.260 に答える