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

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

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

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

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

Q&A

0回答

1142閲覧

JSPのリストボックスについて

retantaro

総合スコア15

JSP

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

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

0グッド

0クリップ

投稿2021/10/20 03:12

前提・実現したいこと

[開発環境:Eclipse]
"REVENGE"テーブルの県名を全件表示し、選択した県名の面積と人口をテキストボックスから値を入力し、データベースを更新するwebアプリケーションを作成しています。

【質問】
JSPに慣れておらず、データベースから取得し、全件表示されたリストボックスを作成するところができず、悩んでいます。
調べてみましたが、selectとforeachを合わせて使っている解説サイトが見つからなかったので質問させていただきました。

どうかご教示をお願い致します。

【補足】
全件表示をweb上でテキストとしての出力まではできました。
それを県名だけでもリストボックスで選択できるようにしたいです。
なにかわかりやすいサイトがあれば参考にさせていただきたいです。

該当のソースコード

java

1//PrefectureSrv.java 2package servlet; 3 4import java.io.IOException; 5import java.util.List; 6 7import javax.servlet.RequestDispatcher; 8import javax.servlet.ServletException; 9import javax.servlet.annotation.WebServlet; 10import javax.servlet.http.HttpServlet; 11import javax.servlet.http.HttpServletRequest; 12import javax.servlet.http.HttpServletResponse; 13 14import dao.FindAll; 15import model.PrefectureData; 16 17/** 18 * Servlet implementation class PrefectureSrv 19 */ 20@WebServlet("/PrefectureSrv") 21public class PrefectureSrv extends HttpServlet { 22 private static final long serialVersionUID = 1L; 23 24 /** 25 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 26 * response) 27 */ 28 protected void doGet(HttpServletRequest request, HttpServletResponse response) 29 throws ServletException, IOException { 30 FindAll fa = new FindAll(); 31 List<PrefectureData> allList = fa.findAll(); 32 request.setAttribute("allList", allList); 33 34 35 // フォワード 36 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/PrefectureView.jsp"); 37 dispatcher.forward(request, response); 38 } 39 /** 40 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 41 */ 42 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 43 RequestDispatcher dispatcher1 = request.getRequestDispatcher("/WEB-INF/jsp/PrefectureView.jsp"); 44 dispatcher1.forward(request, response); 45 } 46 47} 48 49 50//FindAll.java 51package dao; 52 53import java.sql.Connection; 54import java.sql.DriverManager; 55import java.sql.PreparedStatement; 56import java.sql.ResultSet; 57import java.sql.SQLException; 58import java.util.ArrayList; 59import java.util.List; 60 61import model.PrefectureData; 62 63public class FindAll { 64 // データベース接続に使用する情報 65 private final String JDBC_URL = "jdbc:oracle:thin:@//172.16.4.6:1521/infopdb"; 66 private final String DB_USER = "uenoa"; 67 private final String DB_PASS = "uenoa"; 68 69 public List<PrefectureData> findAll(){ 70 71 String sql = "select * from REVENGE"; 72 List<PrefectureData> allList = new ArrayList<PrefectureData>(); 73 74 try( 75 Connection con = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS); 76 ) { 77 PreparedStatement pstmt = con.prepareStatement(sql); 78 ResultSet rs = pstmt.executeQuery(); 79 // データの出力 80 while (rs.next()) { 81 String name = null; 82 double area = 0; 83 double population = 0; 84 PrefectureData allData = new PrefectureData(name, area, population); 85 allData.setName(rs.getString("県名")); 86 allData.setArea(rs.getDouble("面積")); 87 allData.setPopulation(rs.getDouble("人口")); 88 89 allList.add(allData); 90 } 91 92 } 93 catch(SQLException e) { 94 e.printStackTrace(); 95 } 96 97 return allList; 98 } 99} 100 101 102//PrefectureData.java 103package model; 104 105public class PrefectureData implements java.io.Serializable{ 106 private String name; 107 private double area; 108 private double population; 109 110 public PrefectureData(String name, double area, double population) { 111 this.name = name; 112 this.area = area; 113 this.population = population; 114 } 115 116 public final String getName() { 117 return name; 118 } 119 120 public void setName(String name) { 121 this.name = name; 122 } 123 124 public final double getArea() { 125 return area; 126 } 127 128 public void setArea(double area) { 129 this.area = area; 130 } 131 132 public final double getPopulation() { 133 return population; 134 } 135 136 public void setPopulation(double population) { 137 this.population = population; 138 } 139} 140 141 142//PrefectureView.jsp 143<%@ page language="java" contentType="text/html; charset=UTF-8" 144 pageEncoding="UTF-8"%> 145<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 146<%@ page import="javax.servlet.http.*,javax.servlet.*" 147 import="java.io.*,java.util.*,java.text.*" 148%> 149<%@ page import="model.PrefectureData"%> 150<% 151 request.setCharacterEncoding("UTF-8"); 152 List<PrefectureData> allList = (List<PrefectureData>) request.getAttribute("allList"); 153%> 154 155<!DOCTYPE html> 156<html> 157<head> 158<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 159<title>全件表示</title> 160</head> 161<body> 162 <div> 163 <table> 164 <tr> 165 <th>県名</th> 166 <th>面積</th> 167 <th>人口</th> 168 </tr> 169 <c:forEach var="allList" items="${allList}"> 170 <tr> 171 <td>${allList.name}</td> 172 <td>${allList.area}</td> 173 <td>${allList.population}</td> 174 </tr> 175 </c:forEach> 176 </table> 177 </div> 178</body> 179</html>

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問