質問: (List) application.getAttribute("expensesList"); %> カンタン家計簿 家計簿メイン <%= loginUser.getName() %>さん、ログイン中 ログアウト 更新 <% for(Expenses expenses : expensesList) { %> <%= expenses.getUserName() %>:<%= expenses.getText() %>:<%= expenses.getMoney() %> <%} %>
回答: スタックトレースの読み方を覚えた方がよいです。 > > java.lang.NullPointerException > > model.PostExpensesLogic.execute(PostExpensesLogic.java:7) > > servlet.Main.doPost(Main.java:96) > > > PostExpensesLogic.java:7 つまり、PostExpensesLogic.javaの7行目 > > expensesList.add(0,expenses); //先頭に追加 > > > の部分で発生しています。 ということは、引数の`expensesList`がnullの可能性が高いです。 ``` List expensesList = (List)application.getAttribute("ExpensesList"); ``` としていますが、初回アクセスはnullではないですか? このアクセスの前に、 ``` //アプリケーションスコープに家計簿リストを保存 application.setAttribute("expensesList", expensesList); ``` のように設定するか、nullの時は自前でnewしてあげればよいかと思います。 > > 『スッキリわかるサーブレット&JSP』 > > > の、どこかに上記のような記載があるか、エラッタで追加する部分が抜けているのではないでしょうか。