こんにちは。
現在JSPの学習をしているものです。
現在、jspを実行すると例外が発生してしまい困っています。
###発生しているエラー
タイプ 例外報告
メッセージ [/jsp/bookDetail.jsp] の処理中に行番号 [42] で例外が発生しました。
説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。
例外
org.apache.jasper.JasperException: [/jsp/bookDetail.jsp] の処理中に行番号 [42] で例外が発生しました。
39:
40: <tr class="row">
41: <th class="col-3" >書籍名</th>
42: <td class="col-9"><%= bookList.getBookTitle() %></td>
43: </tr>
44:
45: <tr class="row">Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:626)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
根本原因java.lang.NullPointerException
org.apache.jsp.jsp.bookDetail_jsp._jspService(bookDetail_jsp.java:166)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
注意 原因のすべてのスタックトレースは、サーバのログに記録されています
というNullPointerExceptionが発生してしまいます。
ソースコード自体には赤波線はありません。なぜこのようなエラーが発生してしまうのでしょうか。
何か気になる箇所などございましたらご教授いただければ幸いです。
どうぞよろしくお願いいたします。
###私のソースコード
JSP
1<%@ page import="java.util.ArrayList" %> 2<%@ page import="dto.BookDTO" %> 3<%@ page language="java" contentType="text/html; charset=UTF-8" 4pageEncoding="UTF-8"%> 5 6<% request.setCharacterEncoding("UTF-8"); %> 7 8<!DOCTYPE html> 9<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> 10<!-- JS, Popper.js, and jQuery --> 11<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> 12<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> 13<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> 14 15<link rel="stylesheet" href="../css/entire.css"> 16<link rel="shortcut icon" href="image.png"> 17 18 19<body> 20 21 <% BookDTO bookList = (BookDTO)request.getAttribute("bookList"); %> 22 23 <jsp:include page="navigation.jsp" /> 24 25 <div class="container"> 26 <div class="row"> 27 <div class="col-12"></div> 28 <div class="col-12"></div> 29 </div> 30 31 <div class="row "> 32 <div class="col-lg-4 col-sm-12"> 33 <img class="img-book mx-auto d-block" src="thick-book_illust_3551.png" > 34 </div> 35 36 <div class="col-lg-8 col-sm-12"> 37 <table class="table"> 38 <tbody > 39 40 <tr class="row"> 41 <th class="col-3" >書籍名</th> 42 <td class="col-9"><%= bookList.getBookTitle() %></td> 43 </tr> 44 45 <tr class="row"> 46 <th class="col-3" >出版社</th> 47 <td class="col-9"><%= bookList.getPublisher() %></td> 48 </tr> 49 50 <tr class="row"> 51 <th class="col-3" >著者</th> 52 <td class="col-9"><%= bookList.getAuthor() %></td> 53 </tr> 54 55 <tr class="row"> 56 <th class="col-3" >メインジャンル</th> 57 <td class="col-9"><%= bookList.getMainGenresName() %></td> 58 </tr> 59 60 <tr class="row"> 61 <th class="col-3" >サブジャンル</th> 62 <td class="col-9"><%=bookList.getSubGenresName() %></td> 63 </tr> 64 65 <tr class="row"> 66 <th class="col-3" >発行日</th> 67 <td class="col-9"><%=bookList.getPublishDate() %></td> 68 </tr> 69 70 <tr class="row"> 71 <th class="col-3" >価格</th> 72 <td class="col-9 text-right"><%=bookList.getPrice() %></td> 73 </tr> 74 75 <tr class="row"> 76 <th class="col-3" >冊数</th> 77 <td class="col-9 text-right"><%=bookList.getBookNum() %></td> 78 </tr> 79 80 <tr class="row"> 81 <th class="col-3" >内容</th> 82 <td class="col-9"><%= bookList.getContent() %></td> 83 </tr> 84 85 </tbody> 86 </table> 87</div> 88</div> 89</div> 90 <div class="container"> 91 <div class="row"> 92 <div class="col-12"> 93 <button type="button" class="btn btn-outline-success migi">戻る</button> 94 </div> 95 </div> 96 </div> 97</body> 98 99 100
BookDTO
1package dto; 2 3public class BookDTO { 4 private int id;//書籍番号 5 private String bookname;//書籍名 6 private String publisher;//出版社名 7 private String author;//著者名 8 private String maingernresname; 9 private String subgernresname; 10 private String content;//内容 11 private int price;//価格 12 private String day;//出版日 13 private int numberofbooks;//冊数 14 private String picture;//画像png 15 private String register_day_and_time;//登録日時 16 private String registrant_id;//ユーザーID 17 18 public BookDTO() { 19} 20 21public BookDTO(int id,String bookname,String publisher,String author,String maingernresname, String subgernresname, String content,int price,String day,int numberofbooks,String picture,String register_day_and_time,String registrant_id) { 22 this.id=id; 23 this.bookname=bookname; 24 this.publisher=publisher; 25 this.author=author; 26 this.maingernresname=maingernresname; 27 this.subgernresname=subgernresname; 28 this.content=content; 29 this.price=price; 30 this.day=day; 31 this.numberofbooks=numberofbooks; 32 this.picture=picture; 33 this.register_day_and_time=register_day_and_time; 34 this.registrant_id=registrant_id; 35 36} 37 38 39public int getId() { 40 return id; 41 } 42 43public void setId(int id) { 44 this.id = id; 45 } 46public String getBookTitle() { 47 return bookname; 48 } 49 50public void setBookTitle(String bookname) { 51 this.bookname = bookname; 52 } 53 54public String getPublisher() { 55 return publisher; 56 } 57 58public void setPublisher(String publisher) { 59 this.publisher = publisher; 60 } 61public String getAuthor() { 62 return author; 63 } 64 65public void setAuthor(String author) { 66 this.author = author; 67 } 68 69 70public String getMainGenresName() { 71 return maingernresname; 72 } 73 74public void setMainGenresName(String maingernresname) { 75 this.maingernresname = maingernresname; 76 } 77 78public String getSubGenresName() { 79 return subgernresname; 80 } 81 82public void setSubGenresName(String subgernresname) { 83 this.subgernresname = subgernresname; 84 } 85 86 87public String getContent() { 88 return content; 89 } 90 91public void setContent(String content) { 92 this.content = content; 93 } 94public int getPrice() { 95 return price; 96 } 97 98public void setPrice(int price) { 99 this.price = price; 100 } 101 102public String getPublishDate() { 103 return day; 104 } 105 106public void setPublishDate(String day) { 107 this.day = day; 108 } 109public int getBookNum() { 110 return numberofbooks; 111 } 112 113public void setBookNum(int numberofbooks) { 114 this.numberofbooks = numberofbooks; 115 } 116public String getPicture() { 117 return picture; 118 } 119 120public void setPicture(String picture) { 121 this.picture = picture; 122 } 123 124public String getRegister_day_and_time() { 125 return register_day_and_time; 126 } 127 128public void setRegister_day_and_time(String register_day_and_time) { 129 this.register_day_and_time = register_day_and_time; 130 } 131 132public String getRegistrant_id() { 133 return registrant_id; 134 } 135 136public void setRegistrant_id(String Registrant_id) { 137 this.registrant_id = Registrant_id; 138 } 139 140 141 142 143} 144
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。