質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

2321閲覧

Java 検索システム

serd

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2019/05/24 02:03

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Javaで図書管理システムを作成しています。
資料名入力画面(Search.jsp)から検索したい資料名(一部)を入力し、データベースに登録してある資料目録(resource_book)から探し、結果画面(Search1.jsp)に資料のタイトル(book_name)、著者(author)、
分類コード(code)、出版日(publish_date)を出力したいと考えています。
Eclipsewp用いて以下のようにソースコードを書いているのですが、うまくいきません。
どのようにしたらよいでしょうか。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

重大: サーブレット jsp のServlet.service()が例外を投げました [金 5 24 10:50:38 JST 2019] org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property 'name' not found on type en.bean.SearchBean at org.apache.jasper.servlet.JspSe -----------------------------------Search.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2>検索フォーム</h2> <form action="/member/BookSearchServlet" method="post"> タイトル:<input type="text" name="book_name"><br> <input type="submit" value="検索"><br><br> <input type="hidden" name="action" value="search"> </form> </body> </html>    --------------------------------------------BookSearchServlet package en.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import en.dao.BookDAO; /** * Servlet implementation class BookSearchServlet */ @WebServlet("/BookSearchServlet") public class BookSearchServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public BookSearchServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("UTF-8"); String action = request.getParameter("action"); try { BookDAO dao=new BookDAO(); //名前検索 if (action.equals("search")) { String name = request.getParameter("book_name"); /*String name = request.getParameter("book_name"); String name = request.getParameter("book_name"); String name = request.getParameter("book_name"); */ //dao.findByName(name); request.setAttribute("list", dao.findByresource_book(name)); RequestDispatcher rd = request.getRequestDispatcher("/Search1.jsp"); rd.forward(request, response); } } catch (Exception e) { e.printStackTrace(); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } ---------------------------------------SearchBean.java package en.bean; import java.io.Serializable; public class SearchBean implements Serializable { private String book_name; //private String book_id; private String author; private int code; private String publish_date; public SearchBean(String book_name, String author, int code, String publish_date) { super(); this.book_name = book_name; //this.book_id = book_id; this.author = author; this.code = code; this.publish_date = publish_date; } public String getBook_name() { return book_name; } public void setBook_name(String book_name) { this.book_name = book_name; } /* public String getBook_id() { return book_id; } public void setBook_id(String book_id) { this.book_id = book_id; } */ public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getPublish_date() { return publish_date; } public void setPublish_date(String publish_date) { this.publish_date = publish_date; } } package en.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import en.bean.SearchBean; ---------------------------------------BookDAO.java public class BookDAO { private Connection con; public BookDAO() throws DAOException { getConnection(); } public List<SearchBean> findAll() throws DAOException { if (con == null) { getConnection(); } PreparedStatement st = null; ResultSet rs = null; try { // SQL文の作成 String sql ="SELECT * FROM resource_book WHERE book_name like ?"; // PreparedStatementオブジェクトの取得 st = con.prepareStatement(sql); //st.setString(1, "%"+""+"%"); // SQLの実行 rs = st.executeQuery(); // 結果の取得および表示 List<SearchBean> list = new ArrayList<SearchBean>(); while (rs.next()) { String name = rs.getString("book_name"); int code = rs.getInt("code"); String author = rs.getString("author"); String publish_date = rs.getString("publish_date"); SearchBean bean = new SearchBean(name, author,code,publish_date); list.add(bean); } // 商品一覧をListとして返す return list; } catch (Exception e) { e.printStackTrace(); throw new DAOException("レコードの取得に失敗しました。"); } finally { try { // リソースの開放 if (rs != null) rs.close(); if (st != null) st.close(); close(); } catch (Exception e) { throw new DAOException("リソースの開放に失敗しました。"); } } } public List<SearchBean> findByresource_book(String book_name) throws DAOException { if (con == null) getConnection(); PreparedStatement st = null; ResultSet rs = null; try { // SQL文の作成 String sql = "SELECT * FROM resource_book WHERE book_name like ?"; // PreparedStatementオブジェクトの取得 st = con.prepareStatement(sql); st.setString(1, "%"+book_name+"%"); // SQLの実行 rs = st.executeQuery(); // 結果の取得および表示 List<SearchBean> list = new ArrayList<SearchBean>(); while (rs.next()) { String name = rs.getString("book_name"); String author = rs.getString("author"); int code = rs.getInt("code"); String publish_date = rs.getString("publish_date"); SearchBean bean = new SearchBean(name, author,code,publish_date); list.add(bean); } // 商品一覧をListとして返す return list; } catch (Exception e) { e.printStackTrace(); throw new DAOException("レコードの取得に失敗しました。"); } finally { try { // リソースの開放 if (rs != null) rs.close(); if (st != null) st.close(); close(); } catch (Exception e) { throw new DAOException("リソースの開放に失敗しました。"); } } } private void getConnection() throws DAOException { try { // JDBCドライバの登録 Class.forName("org.postgresql.Driver"); // URL、ユーザ名、パスワードの設定 //webbook_s String url = "jdbc:postgresql:webbook_s"; //webbookuser_s String user = "webbookuser_s"; String pass = "himitu"; // データベースへの接続 con = DriverManager.getConnection(url, user, pass); } catch (Exception e) { throw new DAOException("接続に失敗しました。"); } } private void close() throws SQLException { if (con != null) { con.close(); con = null; } } } ---------------------------------Search1.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Show All Items</title> </head> <body> <table border="1"> <tr><td>名前</td><td>コード</td><td>著者</td><td>出版日</td></tr> <c:forEach items="${list}" var="list"> <tr><td>${list.name}</td><td>${list.code}</td><td>${list.author}</td><td>${list.publish_date}</td></tr> </c:forEach> </table> </body> </html> ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/24 02:11

コードは```で「囲う」必要があります。 ```Java ここにコード ``` ファイル毎にわけてもらえると見やすいです。 a.java ```Java a.javaのコード ``` b.java ```Java b.javaのコード ```
BeatStar

2019/05/24 02:57

うまくいかないなら、『どういう風にうまくいかないのか』も明記してください。 もしかしたらコード上は問題ないが、質問者さんが勘違いしている( 4 × 7 = 49 みたいに勘違いしているとか? ) 場合もありますし、 質問者さんの環境がおかしい( 例えばファイルがないとか、OSが違うとか etc. )場合もありますし、 コードがおかしい場合もあります。 また、コードはmts10806さんのおっしゃるように書いてください。
guest

回答1

0

Property 'name' not found on type en.bean.SearchBeanとあるので

<tr><td>${list.name}</td><td>${list.code}</td><td>${list.author}</td><td>${list.publish_date}</td></tr>

list.name は list.book_name ではないかと。

投稿2019/05/24 04:41

dsuzuki

総合スコア1682

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問