以下のjspでRecordManagerの商品データを選べるプルダウンをinit.jspで出力させたいのですが、下記のようなエラーが出てしまいます。
init.jspの23行目とそれに関連するソースも見返したのですが、原因がわからないので、教えていただきたいです。
ここかなと思うソースを下に記載しているので、確認をお願いします。
他に必要なソース等あれば教えてください。
エラー内容
Type Exception Report
メッセージ An exception occurred processing JSP page [/WEB-INF/views/init.jsp] at line [23]
説明 The server encountered an unexpected condition that prevented it from fulfilling the request.
例外
org.apache.jasper.JasperException: An exception occurred processing JSP page [/WEB-INF/views/init.jsp] at line [23]
20: </div>
21: <div class="footer">
22: <div>
23: <form:select path="name" items="${nameList}" />
24: </div>
25: <div>
26: <input type="submit" name="update" value="更新" />
init.jsp
jsp
1<%@ page session="false" language="java" 2 contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 3<%@ page import="java.time.LocalDate"%> 4<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 5<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 6<!DOCTYPE html> 7<html> 8<head> 9<link rel="stylesheet" type="text/css"href="/sales/resources/css/common.css" /> 10<title>売上システム(初期画面)</title> 11</head> 12<body> 13 14 <form:form modelAttribute="SalesSystemForm" action="/sales/system"> 15 <div class="header"> 16 <span class="titleName">オンラインショップ</span> 17 <div class="date"><%=LocalDate.now()%></div> 18 </div> 19 <div class="main"> 20 </div> 21 <div class="footer"> 22 <div> 23 <form:select path="name" items="${nameList}" /> 24 </div> 25 <div> 26 <input type="submit" name="update" value="更新" /> 27 </div> 28 </div> 29 </form:form> 30</body> 31</html>
SalesSystemController.java
java
1package jp.practice.sales; 2 3import org.springframework.stereotype.Controller; 4import org.springframework.ui.Model; 5import org.springframework.web.bind.annotation.RequestMapping; 6 7/** 8 * Handles requests for the application home page. 9 */ 10@Controller 11@RequestMapping(value = "/system") 12public class SalesSystemController { 13 14 /** 15 * 起動時および登録完了時に呼ばれる。初期画面を表示する。 16 * @param form フォームオブジェクト 17 * @param model モデルオブジェクト 18 * @return Viewとしてinit.jspを指定 19 */ 20 @RequestMapping(value = "/start") 21 public String init(SalesForm form, Model model) { 22 model.addAttribute("nameList", RecordManager.makeNameList()); 23 //model.addAttribute("nameList", RecordManager.makeNameList()); 24 //form.setName(RecordManager.getFirstPersonName()); 25 return "init"; 26 } 27}
RecordManager.java
java
1package jp.practice.sales; 2 3import java.util.ArrayList; 4import java.util.List; 5 6/** 7 * 商品データ全体を保持するクラス 8 */ 9public final class RecordManager { 10 11 /** 商品データ */ 12 private static final List<Item> list = new ArrayList<Item>(); 13 static { 14 list.add(new Item("A00101", "油性ボールペン", 60, 0, 0)); 15 list.add(new Item("A00201", "極細ボールペン", 120, 0, 0)); 16 list.add(new Item("A00301", "蛍光ペン6色セット", 420, 0, 0)); 17 list.add(new Item("A00401", "シャープペンシル", 100, 0, 0)); 18 list.add(new Item("A00501", "鉛筆H(1ダース)", 400, 0, 0)); 19 list.add(new Item("B00101", "無線綴ノートA4", 100, 0, 0)); 20 list.add(new Item("B00201", "リングノートA4", 120, 0, 0)); 21 list.add(new Item("B00301", "領収書", 350, 0, 0)); 22 list.add(new Item("C00101", "はさみ(青)", 128, 0, 0)); 23 list.add(new Item("C00201", "ステープラー", 338, 0, 0)); 24 list.add(new Item("C00301", "2穴パンチ", 128, 0, 0)); 25 list.add(new Item("C00401", "ゼムクリップ", 98, 0, 0)); 26 list.add(new Item("C00501", "消しゴム", 58, 0, 0)); 27 } 28 29 /** 30 * 引数で指定された商品名に一致する商品データを返却 31 * @param name 検索キーとなる商品名 32 * @return 検索結果の商品データ 33 */ 34 public static Item findItem(String goodsName) { 35 int index = list.indexOf(new Item("", goodsName, 0,0,0)); 36 return list.get(index); 37 } 38 39 /** 40 * 商品データを返す。 41 * @return 商品データ 42 */ 43 public static List<Item> getItemList() { 44 return list; 45 } 46 47 /** 48 * 全員の名前のリストを返す。 49 * @return 名前の配列 50 */ 51 public static String[] makeNameList() { 52 String[] nameList = new String[list.size()]; 53 for (int i = 0; i < list.size(); i++) { 54 nameList[i] = (list.get(i)).getName(); 55 } 56 return nameList; 57 } 58}
Item.java
java
1package jp.practice.sales; 2 3public class Item { 4 5 public Item(String id, String name, int price, int quantity, int subtotal) { 6 this.id = id; 7 this.name = name; 8 this.price = price; 9 this.quantity = quantity; 10 this.subtotal = subtotal; 11 } 12 /** 商品ID */ 13 private String id; 14 /** 商品名 */ 15 private String name; 16 /** 単価 */ 17 private int price; 18 /** 売上点数 */ 19 private int quantity; 20 /** 小景 */ 21 private int subtotal; 22 23 /** 24 * @return id 25 */ 26 public String getId() { 27 return id; 28 } 29 30 /** 31 * @param id セットする id 32 */ 33 public void setId(String id) { 34 this.id = id; 35 } 36 37 /** 38 * @return name 39 */ 40 public String getName() { 41 return name; 42 } 43 44 /** 45 * @param name セットする name 46 */ 47 public void setName(String name) { 48 this.name = name; 49 } 50 51 /** 52 * @return price 53 */ 54 public int getPrice() { 55 return price; 56 } 57 58 /** 59 * @param price セットする price 60 */ 61 public void setPrice(int price) { 62 this.price = price; 63 } 64 65 /** 66 * @return quantity 67 */ 68 public int getQuantity() { 69 return quantity; 70 } 71 72 /** 73 * @param quantity セットする quantity 74 */ 75 public void setQuantity(int quantity) { 76 this.quantity = quantity; 77 } 78 79 /** 80 * @return subtotal 81 */ 82 public int getSubtotal() { 83 return subtotal; 84 } 85 86 /** 87 * @param subtotal セットする subtotal 88 */ 89 public void setSubtotal(int subtotal) { 90 this.subtotal = subtotal; 91 } 92 /* (非 Javadoc) 93 * @see java.lang.Object#hashCode() 94 */ 95 @Override 96 public int hashCode() { 97 final int prime = 31; 98 int result = 1; 99 result = prime * result + ((name == null) ? 0 : name.hashCode()); 100 return result; 101 } 102 /* (非 Javadoc) 103 * @see java.lang.Object#equals(java.lang.Object) 104 */ 105 @Override 106 public boolean equals(Object obj) { 107 if (this == obj) { 108 return true; 109 } 110 if (obj == null) { 111 return false; 112 } 113 if (!(obj instanceof Item)) { 114 return false; 115 } 116 Item other = (Item) obj; 117 if (name == null) { 118 if (other.name != null) { 119 return false; 120 } 121 } else if (!name.equals(other.name)) { 122 return false; 123 } 124 return true; 125 } 126}
SalesForm.java
java
1package jp.practice.sales; 2 3public class SalesForm { 4 5 private String goodsName; 6 private int point; 7 private int delNumber; 8 9 public SalesForm() { 10 11 } 12 /** 13 * @return idgoodsName 14 */ 15 public String getGoodsName() { 16 return goodsName; 17 } 18 19 /** 20 * @param goodsName セットする goodsName 21 */ 22 public void setGoodsName(String goodsName) { 23 this.goodsName = goodsName; 24 } 25 26 /** 27 * @return point 28 */ 29 public int getPoint() { 30 return point; 31 } 32 33 /** 34 * @param point セットする point 35 */ 36 public void setPoint(int point) { 37 this.point = point; 38 } 39 40 /** 41 * @return delNumber 42 */ 43 public int getDelNumber() { 44 return delNumber; 45 } 46 47 /** 48 * @param delNumber セットする delNumber 49 */ 50 public void setDelNumber(int delNumber) { 51 this.delNumber = delNumber; 52 } 53 54}
回答1件
あなたの回答
tips
プレビュー