teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

訂正

2018/07/08 04:17

投稿

yukapome789
yukapome789

スコア361

answer CHANGED
@@ -1,4 +1,4 @@
1
- LoginServlet.javaで、errorオブジェクトをresponseにsetAttribute()していないのが原因と思われます。
1
+ LoginServlet.javaで、errorオブジェクトをrequestにsetAttribute()していないのが原因と思われます。
2
2
 
3
3
  まず、エラーは、Login.jspの12行目でnullのオブジェクトにアクセスしようとしているよ、という例外です。
4
4
  Login.jspの12行目(と思われる付近)を見てみると、
@@ -19,13 +19,16 @@
19
19
  dispatcher.forward(request, response);
20
20
  ```
21
21
 
22
- errorオブジェクトにエラーメッセージをセットしてから、responseオブジェクトにsetAttribute()していないようですので
22
+ errorオブジェクトにエラーメッセージをセットしてから、requestオブジェクトにsetAttribute()していないようですので
23
23
 
24
24
  ```
25
25
  error.add("ログインIDを入力してください。");
26
- response.setAttribute("error", error);
26
+ request.setAttribute("error", error);
27
27
  RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Login.jsp");
28
28
  dispatcher.forward(request, response);
29
29
  ```
30
+
30
31
  とすれば、jspで取得できるようになるのではないでしょうか。
31
- jspでgetAttribute("error")するためには、事前にsetAttribute("error", errorという文字列で取得したいオブジェクトや値)をしておかなければいけません。
32
+ jspでgetAttribute("error")するためには、事前に `request.setAttribute("error", errorという文字列で取得したいオブジェクトや値)` をしておかなければいけません。
33
+
34
+ 参考:https://www.javadrive.jp/servlet/dispatch/index3.html