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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

7486閲覧

JSPでの絞り込み機能

l_l_l_l_l_l_l_l

総合スコア38

JSP

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2016/06/21 02:54

編集2016/06/21 03:01

###前提・実現したいこと
閲覧誠に有難う御座います。
只今eqlipceを使いJSP、servletを使用し、
図書館の様なシステムを開発しているのですが、
書籍のジャンルをドロップダウンリストで表示し、
選択するとそれに該当した書籍のみを表示する機能、
いわば絞込み機能の制作をしています。
しかし、選択しても無反応です。
エラーも出ないのでご指摘お願い致します。
参考までに下記にソースを記載しておきます。

###JSP(book_kanri.jsp)

java

1<%@ page contentType="text/html; charset=UTF-8" 2import="java.sql.*,javax.naming.*,javax.sql.*,java.text.*,java.util.Date,java.util.Calendar"%> 3<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> 5<html> 6<sql:setDataSource var="db" driver="com.mysql.jdbc.Driver" 7 url="jdbc:mysql://localhost/Library" user="root" password="" /> 8<sql:query var="rs" dataSource="${db}"> 9 SELECT book.book_no,book.book_name,book.note,genre.genre_name, 10 lend.lend_date,book.state FROM book LEFT JOIN lend ON book.book_no = lend.book_no LEFT JOIN 11 user ON user.user_no = lend.user_no LEFT JOIN genre ON book.genre_no = genre.genre_no 12 13 <c:if test="${!empty param['genreNo']}"> 14 where book.genre_no = ? 15 <sql:param value="${param['genreNo']}" /> 16 </c:if> 17 ORDER BY book.book_no; 18</sql:query> 19<sql:query var="rs1" dataSource="${db}"> 20 select * from genre 21</sql:query> 22<sql:query var="rs2" dataSource="${db}"> 23 select book.book_no from book 24</sql:query> 25<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 26 27 28<head> 29<link rel="stylesheet" type="text/css" href="css/Library.css"> 30<meta content="text/html; charset=UTF-8"> 31<title>書籍管理画面</title> 32</head> 33<body> 34 <h2>書籍管理画面</h2> 35 36 <br> 37 <form method="POST" action="book_kanri.jsp"> 38 <% 39 Connection con = null; 40 PreparedStatement ps = null; 41 String sql = null; 42 ResultSet rs = null; 43 try { 44 Context initContext = new InitialContext(); 45 DataSource ds = (DataSource) initContext 46 .lookup("java:comp/env/jdbc/Library"); 47 con = ds.getConnection(); 48 49 sql = "SELECT book.book_no,book.book_name,genre.genre_name,book.state,book.note" 50 + " FROM book LEFT JOIN genre ON book.genre_no = genre.genre_no where book.delete_flg = 0"; 51 52 ps = con.prepareStatement(sql); 53 54 rs = ps.executeQuery(); 55 %> 56<br> 57<form method="POST" action="book_kanri.jsp"> 58 <p> 59 ジャンル 60 <select name="genreNo"> 61 <option value="">全て</option> 62 <c:forEach var="row" items="${rs1.rows}"> 63 <option value=${row.genre_no}>${row.genre_name}</option> 64 </c:forEach> 65 </select> 66 </p> 67 68<INPUT style="color:white; 69 background-color:D57200;" type="submit" value="絞り込む" /> 70</form> 71<br> 72 73<br> 74<form method="POST" action="book_memo"> 75 76 <p> 77 書籍ID 78 <select name="book_no"> 79 <c:forEach var="row" items="${rs2.rows}"> 80 <option>${row.book_no}</option> 81 </c:forEach> 82 </select> 83 </p> 84 <div> 85 備考<input type="text" name="note" /> 86 </div> 87<br> 88 89<INPUT style="color:white; 90 background-color:D57200;" type="submit" value="登録" /> 91</form> 92<br> 93 94 95 96 <table class="tbl_01" border="1"> 97 <tr> 98 <th>書籍ID</th> 99 <th>書籍名</th> 100 <th>ジャンル</th> 101 <th>貸出</th> 102 <th>貸出変更</th> 103 <th>削除</th> 104 <th>備考(メモ)</th> 105 </tr> 106 <tr> 107 <% 108 while (rs.next()) { 109 %> 110 <td><%=rs.getString("book_no")%></td> 111 <td><%=rs.getString("book_name")%></td> 112 <td><%=rs.getString("genre_name")%></td> 113 <td> 114 <% 115 String str = rs.getString("state"); 116 if ("1".equals(str)) { 117 %><% 118 } else { 119 %>×<% 120 } 121 %> 122 </td> 123 124 <% 125 if ("1".equals(str)) { 126 %><td><form method="POST" action="kano"> 127 128 <input type="hidden" name="id" value="<%=rs.getString("book_no")%>"> 129 <button class="button" type="submit">不可へ</button> 130 </form></td> 131 <% 132 } else { 133 %> 134 <td><form method="POST" action="huka"> 135 <input type="hidden" name="id" value="<%=rs.getString("book_no")%>"> 136 <button class="button" type="submit">可能へ</button> 137 </form></td> 138 <% 139 } 140 %> 141 <td><form method="POST" action="delete_book"> 142 <input type="hidden" name="user_edit" value="<%=rs.getString("book_no")%>"> 143 <button class="button" type="submit">削除</button> 144 </form></td> 145 146 <td><% 147 String memo = rs.getString("note"); 148 if ("".equals(memo)) { 149 %>-<% 150 } else if ("null".equals(memo)){ 151 %>-<% 152 }else{ 153 %><%=rs.getString("note")%> 154 <%} %></td> 155 156 157 </tr> 158 <% 159 } 160 %> 161 </table> 162 <br> 163 <form action="kanri_mypage.jsp"> 164 <input style="color: white; background-color: D57200;" type="submit" 165 name="mypage" value="TOPページ"> 166 167 </form> 168 169 <form action="book_resurrection.jsp"> 170 <input style="color: white; background-color: D57200;" type="submit" 171 name="reset2" value="削除済書籍編集"> 172 </form> 173 <% 174 } catch (Exception e) { 175 throw new ServletException(e); 176 } finally { 177 try { 178 if (rs != null) { 179 rs.close(); 180 } 181 if (ps != null) { 182 ps.close(); 183 } 184 if (con != null) { 185 con.close(); 186 } 187 } catch (Exception e) { 188 } 189 } 190 %> 191 <c:if test="${!empty requestScope['errorMessage']}"> 192 <div>${requestScope['errorMessage']}</div> 193 </c:if> 194</body> 195</html>

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

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

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

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

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

masaya_ohashi

2016/06/21 02:58

確認ですが、ジャンルを選んで「絞り込む」を押したらページが再度読み込まれて絞りこまれた一覧が出てくる、という認識で正しいですか?
masaya_ohashi

2016/06/21 03:00

あと、一覧表示部もせめて質問文に含めてください。これだけではSQLが原因なのか表示部が原因なのかわかりません。
guest

回答1

0

ベストアンサー

JSPの上の方でやっているsql:queryの処理のvarがrsで、<h2>書籍管理画面</h2>の下のあたりでやっている処理もrsに格納されています。書籍一覧で使いたいrsはどちらのSQL文の結果ですか?不要な方を削除するか、変数の名前を変えてみてください。

投稿2016/06/21 03:06

masaya_ohashi

総合スコア9206

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

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

l_l_l_l_l_l_l_l

2016/06/21 03:11

そうですよね。 使いたいのは下です
masaya_ohashi

2016/06/21 03:15

下のSQLにはWHERE句でgenre_noの絞り込みがありません。だから何を選んでも絞りこまれないのだと思います。
l_l_l_l_l_l_l_l

2016/06/21 03:53

try-catchの部分を消し上の書き方で統一したところ解決しました! 有難うございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問