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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

例外

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

Q&A

解決済

1回答

2346閲覧

jspを実行するとNullPointerExceptionが発生する

ypk

総合スコア83

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

例外

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

0グッド

0クリップ

投稿2020/08/27 06:29

こんにちは。
現在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

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

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

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

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

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

guest

回答1

0

自己解決

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>BookDetailDispDriver</title> </head> <body> <form method="POST" action="/Proto/BookDetailDisp"> <input type="submit" value="書籍情報詳細画面へ"> </form> </body> </html>

とボタンを作成して実行してみたところ無事に解決されました。値がsetされていないにも関わらずgetしようとするとエラーが発生するようです。

投稿2020/08/27 07:13

ypk

総合スコア83

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問