- ベストアンサー
HashMapについて
【Java-Class】 JavaでDBの終了まで、日付・DB有無フラグを退避する。 【JSP】 DB有無フラグが存在する場合は"・"をカレンダーに表示する。 という処理を行いたいと思います。 HashMapを使用して put(),get()を使用したいと思いますが、get()を実行した際にNullPointerExceptionが表示されてしまいます。 エラーを見る限りではputの際に配列に設定していないのが原因なのではないかと思いますが、 修正方法がよくわかりません。 どうかよろしくお願いします。 ===DBSelect.java================================= CalenderHash hash = new CalenderHash(); /* DB終了まで */ while(rs.next()){ // 値の格納 hash.HashPut(rs.getString(YMD), "1"); } ===CalenderHash.java============================= public class CalenderHash { protected HashMap ht; public CalenderHash(){ } public void HashPut(Object YMD,Object Flg){ ht.put(YMD,Flg); } public Object get( Object key ) { return(ht.get(key)); } ==JSPの一部 ============================ for ( int i=1; i<=6; i++){ out.println("<TR ALIGN='right'>"); out.println("<TD>"); <省略> YearMD = year + month + Day; mark = ""; // 値の取得 if ( hash.get(YearMD).equals("1")){ mark = "・"; } %> <A HREF="/Schedule/jsp/memo.jsp?Ymd=<%= YearMD %> "><%= mark %><%= cntday %></A> <% } out.println("</TD>"); } out.println("</TR>"); }
- みんなの回答 (13)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (12)
- kazsharp
- ベストアンサー率37% (16/43)
- taka451213
- ベストアンサー率47% (436/922)
- 1
- 2
補足
やはりそうですか。 現在は受け渡しを行ってないです。 PutしたデータをJSP側に渡すには 具体的にはどのように設定するのですか? ===== Servlet ====== <省略> request.setAttribute("year", year); request.setAttribute("month", month); String YMD = year + month + "01"; /* カレンダー処理 */ Dbconnect connect = new Dbconnect(); Calendar calen = Calendar.getInstance(); calen.set(Integer.parseInt(year),Integer.parseInt(month) - 1,1); maxday = Integer.toString(calen.getActualMaximum(Calendar.DATE)); maxday = year + month + maxday; connect.chkShedule(YMD,maxday); request.getRequestDispatcher("/jsp/calender.jsp").forward(request,response); } ===== Java ====== public void chkShedule(String YMD,String maxday){ /*HashMapクラスの生成 */ CalenderHash hash = new CalenderHash(); <省略> /* DB終了まで */ while(rs.next()){ // 値の格納 hash.HashPut(rs.getString("YMD"), "1"); } <省略> }