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にあまり慣れていません..
皆さんがこれで私を助けてくれることを本当に願っています!
前もって感謝します!