前提・実現したいこと
初心者のものです。
ID、商品名、単価を表示させるプログラムなのですが、MVCモデルで混乱してしまい、
まずはIDだけでも表示させようと取り組んでおります。
ですが、jspにDBから取得したデータを反映させたいのですが上手くいきません。
ご教授いただければ幸いです。
発生している問題・エラーメッセージ
検索処理クラスではShohinBeanオブジェクトにユーザ情報をセットするコードでshohinBean を変数に解決できません
表示画面jspではidを表示させる部分で構文を削除してくださいと出てしまいます。
ID入力画面
HTML(ID入力画面)
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="shift_jis"> 5<title>商品ID入力画面</title> 6</head> 7<body> 8<div align="center"> 9 <form action="search" method="post"> 10 <table> 11 <tr> 12 <td>商品ID:</td> 13 <td><input type="text" name="shohinId"></td> 14 </tr> 15 </table> 16 <input class="button" type="submit" value="検索"> 17 </form> 18 </div> 19</body> 20</html>
BEAN
JAVA
1package jp.co.keyaki.bean; 2public class ShohinBean { 3 private String shohinId; 4 private String shohinName; 5 private int tanka; 6 public void setShohinid(String shohinId) { 7 this.shohinId = shohinId; 8 } 9 public String getShohinid() { 10 return shohinId; 11 } 12 public void setShohinname(String shohinName) { 13 this.shohinName = shohinName; 14 } 15 public String getShohinname() { 16 return shohinName; 17 } 18 public void setTanka(int tanka) { 19 this.tanka = tanka; 20 } 21 public int getTanka() { 22 return tanka; 23 } 24}
検索処理クラス
JAVA
1package jp.co.keyaki.service; 2import java.sql.Connection; 3import java.sql.DriverManager; 4import java.sql.PreparedStatement; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7import org.postgresql.util.PSQLException; 8import jp.co.keyaki.bean.ShohinBean; 9public class ShohinSearch { 10 public ShohinBean search(String shohinId) 11 throws ClassNotFoundException, SQLException { 12 Connection connection = null; 13 PreparedStatement preparedStatement = null; 14 ResultSet resultSet = null; 15 ShohinBean shohinBean = null; 16 try { 17 Class.forName("org.postgresql.Driver"); 18 connection = DriverManager.getConnection( 19 "jdbc:postgresql://【ホスト名】/【データベース名】", "【ユーザ名】", "【パスワード】"); 20 String SQL = "SELECT shohin_id FROM tb_shohin WHERE shohin_id = ?"; 21 preparedStatement = connection.prepareStatement(SQL); 22 preparedStatement.setString(1, shohinId); 23 ResultSet rs = preparedStatement.executeQuery(); 24 if (rs.next()) { 25 shohinBean = new ShohinBean(); 26 shohinBean.setShohinid(rs.getString("shohinId")); 27 } 28 } catch (ClassNotFoundException e) { 29 e.printStackTrace(); 30 } catch (PSQLException e) { 31 e.printStackTrace(); 32 } finally { 33 if (resultSet != null) { 34 resultSet.close(); 35 } 36 if (preparedStatement != null) { 37 preparedStatement.close(); 38 } 39 if (connection != null) { 40 connection.close(); 41 } 42 } 43 return shohinBean; 44 } 45 }
商品情報表示画面
jsp
1<%@ page contentType="text/html; charset=Windows-31J" %> 2<%@ page import="jp.co.keyaki.bean.ShohinBean" %> 3<% 4ShohinBean shohinBean = (ShohinBean) session.getAttribute("shohinBean"); 5%> 6<html> 7<head> 8<meta charset="shift-jis"> 9<title>商品情報 検索結果</title> 10</head> 11<body> 12 <div align="center"> 13 <table border="1"> 14 <tr><th>商品ID</th><th><%=shohinBean.getShohinid()%></th></tr> 15 <tr><th>商品名</th><td>ここに商品名を入れる</td></tr> 16 <tr><th>単価</th><td>ここに単価を入れる</td></tr> 17 </table> 18 </div> 19</body> 20</html>
###サーブレット
JAVA(サーブレット)
1package jp.co.keyaki.controller; 2import java.io.IOException; 3import javax.servlet.RequestDispatcher; 4import javax.servlet.ServletContext; 5import javax.servlet.ServletException; 6import javax.servlet.http.HttpServlet; 7import javax.servlet.http.HttpServletRequest; 8import javax.servlet.http.HttpServletResponse; 9import jp.co.keyaki.bean.ShohinBean; 10import jp.co.keyaki.service.ShohinSearch; 11public class ShohinController extends HttpServlet { 12 public void doPost(HttpServletRequest request, HttpServletResponse response) 13 throws ServletException, IOException { 14 // forward実行時に遷移するページを指定 15 String target = null; 16 try { 17 // クライアントからのリクエストパラメータ(商品ID)を取得 18 String shohinId = request.getParameter("shohinId"); 19 // 商品IDをもとに、商品情報を検索(JavaBeans処理) 20 ShohinSearch shohinSearch = new ShohinSearch(); 21 ShohinBean shohinBean = shohinSearch.search(shohinId); 22 // 取得した商品情報Beanをリクエストスコープにセット 23 request.setAttribute("shohinBean", shohinBean); 24 // 商品情報表示画面のURLをセット 25 target = "/shohinDisplay.jsp"; 26 } catch (Exception e) { 27 e.printStackTrace(); 28 // システムエラー画面のURLをセット 29 target = "/systemError.jsp"; 30 } finally { 31 ServletContext context = this.getServletContext(); 32 RequestDispatcher dispatcher = context.getRequestDispatcher(target); 33 dispatcher.forward(request, response); 34 } 35 } 36}
xml
1<?xml version="1.0" encoding="UTF-8"?> 2<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://xmlns.jcp.org/xml/ns/javaee" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 5 id="WebApp_ID" version="3.1"> 6 <display-name>lesson6</display-name> 7 <servlet> 8 <servlet-name>search</servlet-name> 9 <servlet-class>jp.co.keyaki.controller.ShohinController</servlet-class> 10 </servlet> 11 <servlet-mapping> 12 <servlet-name>search</servlet-name> 13 <url-pattern>/search</url-pattern> 14 </servlet-mapping> 15 <welcome-file-list> 16 <welcome-file>index.html</welcome-file> 17 </welcome-file-list> 18</web-app>
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー