前提
eclipseで映画情報サイトを作っています。
DBの中に入っている、映画名をすべてjsp内のページで表示してく処理の途中にエラーメッセージが発生しました。
実現したいこと
DBからテーブルを引っ張って映画名すべてを出力させたいのですが、なにも表示させることができません。
エラー等はコンソールには表示されていないです。
誤字等の間違いなどがあれば大変申し訳無いのですが、これ以上どうすればいいか分からないので、ご教授いただけますでしょうか。
よろしくお願い致します。
発生している問題・エラーメッセージ
型 MovieInfoDAO の非 static メソッド getList() を static 参照することはできません
該当のソースコード
java
1 2@WebServlet("/MovieInfoList") 3public class MovieInfoList extends HttpServlet { 4 private static final long serialVersionUID = 1L; 5 6 public MovieInfoList() { 7 super(); 8 } 9 10 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 11 } 12 13 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 14 // doGet(req, resp); 15 List<Movie> movieList = MovieInfoDAO.getList(); 16 req.setAttribute("movieList", movieList); 17 req.getRequestDispatcher("/jsp/movieInfoList.jsp"); 18 19 } 20 21} 22
DAO
1public List<Movie> getList() { 2 Movie movie = null; 3 List<Movie> movieList = new ArrayList<>(); 4 // データベース接続 5 try (Connection conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS)) { 6 // SELECT文の準備 7 String sql = "SELECT * FROM movieinfo;"; 8 // SQLをDBに届けるPreparedStatementインスタンスを取得 9 PreparedStatement pStmt = conn.prepareStatement(sql); 10 11 // SELECTを実行し、結果表(ResultSet)を取得 12 ResultSet rs = pStmt.executeQuery(); 13 // SELECT文の結果をmovieに格納 14 // MovieDAOのデータベースから取り出し、MovieInfoList.javaで受け取り、movieInfoList.jspのformで表示 15 while (rs.next()) { 16 movie = new Movie(); 17 // 映画名 18 movie.setMovieName(rs.getString("moviename")); 19 // リストへ(movieList) 20 movieList.add(movie); 21 } 22 } catch (SQLException e) { 23 e.printStackTrace(); 24 return null; 25 } 26 return movieList; 27 } 28
jsp
1<body> 2 <div 3 class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom"> 4 <h1 class="h2">映画情報名一覧</h1> 5 </div> 6 <div id="main"> 7 8 <table> 9 <tr> 10 <th>映画名</th> 11 </tr> 12 13 <c:forEach var="movie" items="${movieList}"> 14 <tr> 15 <td><c:out value="${movie.moviename}" /></td> 16 </tr> 17 </c:forEach> 18 </table> 19 </div> 20</body> 21
試したこと
DAO内はstaticをつけていないので、試しにstaticをつけたり、サイトで書いてるものを参考にしたりしてみました。
回答1件
あなたの回答
tips
プレビュー