###前提・実現したいこと
JSPに入力した値をbeansで受け取ってSQL文のWHEREによって、入力と一致するデータをJSPでWEBブラウザで表示させたい。
初心者でわからないことだらけですが、一人前のエンジニアになりたいです。ご指導よろしくお願い致します。
###発生している問題・エラーメッセージ
nullが返される
###該当のソースコード
JAVA
1--------------------kensaku.jsp---------------------------- 2<%@ page language="java" contentType="text/html; charset=windows-31j" 3 pageEncoding="windows-31j"%> 4 <%@ page import="java.util.*" %> 5<jsp:useBean id="cb" class="employee.KenBean" scope="request"/> 6 7<%! 8 ArrayList colname; 9 ArrayList data; 10 %> 11<% 12 colname = cb.getColname(); 13 data = cb.getData(); 14%> 15 16 17<html> 18<body bgcolor="#f8f8fa"> 19<br> 20<p><Div Align="center"> 21<h1>検索</h1> 22<hr/> 23<br><br><br><br> 24<table border="1"> 25<tr bgcolor="#EoC76F"> 26<% 27 for(int row=0; row<data.size(); row++){ 28%> 29<tr> 30<% 31 ArrayList rowdata = (ArrayList) (data.get(row)); 32 for(int column=0;column<rowdata.size(); column++){ 33%> 34<td> 35<%= rowdata.get(column) %> 36</td> 37<% 38 } 39%> 40</tr> 41<% 42 } 43%> 44</table> 45 46<p><form method="post" action="KenBean.java"> 47<H2> 48社員コード: <input type="text" name="scode" size="20" maxlength="3" pattern="^[0-9]+$" required autofocus> 49</H2> 50<input type="submit" value="検索開始" onClick="location.href='Ken'" style="WIDTH:100px; HEIGHT:40px" onclick="scode"><br><br><br><br> 51</form> 52</div> 53 54</body> 55 56</html> 57------------------------------------------------------------- 58-----------------KenBean.java-------------------------------- 59package employee; 60 61import java.io.Serializable; 62import java.sql.Connection; 63import java.sql.DriverManager; 64import java.sql.ResultSet; 65import java.sql.ResultSetMetaData; 66import java.sql.Statement; 67import java.util.ArrayList; 68 69public class KenBean implements Serializable{ 70 71 private ArrayList<String> colname; 72 private ArrayList<ArrayList> data; 73 74 75 public KenBean(){ 76 try{ 77 String code = getPalameter("scode"); 78 System.out.println(code); 79 Class.forName("com.mysql.jdbc.Driver"); 80 //接続の準備 81 String url = "jdbc:mysql://localhost:3306/employeemaster"; 82 String usr = "root"; 83 String pw = ""; 84 85 //データベースへの接続 86 Connection cn 87 = DriverManager.getConnection(url,usr,pw); 88 89 //問い合わせの準備 90 91 Statement st = cn.createStatement(); 92 String qry1 93 = "SELECT * FROM employeemaster WHERE 社員コード=" + code; 94 95 //問い合わせ 96 ResultSet rs = st.executeQuery(qry1); 97 98 //列数の取得 99 ResultSetMetaData rm = rs.getMetaData(); 100 int cnum = rm.getColumnCount(); 101 colname = new ArrayList<String>(cnum); 102 103 //列名の取得 104 for(int i=1; i<=cnum; i++){ 105 colname.add(rm.getColumnName(i).toString()); 106 } 107 108 //行の取得 109 data = new ArrayList<ArrayList>(); 110 while(rs.next()){ 111 ArrayList<String> rowdata 112 = new ArrayList<String>(); 113 for(int i=1; i<=cnum; i++){ 114 rowdata.add(rs.getObject(i).toString()); 115 } 116 data.add(rowdata); 117 } 118 //接続のクローズ 119 rs.close(); 120 st.close(); 121 cn.close(); 122 123 } 124 catch(Exception e){ 125 e.printStackTrace();} 126 } 127private String getPalameter(String string) { 128 // TODO 自動生成されたメソッド・スタブ 129 return null; 130 } 131public ArrayList getData(){ 132 return data; 133} 134public ArrayList getColname(){ 135 return colname; 136} 137} 138---------------------------------------------------------- 139 140------------------KenServ.java--------------------------- 141 142package employee; 143 144import javax.servlet.ServletContext; 145import javax.servlet.ServletException; 146import javax.servlet.http.HttpServlet; 147import javax.servlet.http.HttpServletRequest; 148import javax.servlet.http.HttpServletResponse; 149 150public class KenServ extends HttpServlet{ 151 public void doPost(HttpServletRequest req,HttpServletResponse res) 152 throws ServletException{ 153 154 try{ 155 ServletContext sc = getServletContext(); 156 157 KenBean cb = new KenBean(); 158 159 req.setAttribute("cb",cb); 160 161 162 sc.getRequestDispatcher("/kensaku.jsp").forward(req, res); 163 } 164 catch(Exception e){ 165 e.printStackTrace(); 166 } 167 } 168} 169 170------------------------------------------------------------- 171 172
###補足情報(言語/FW/ツール等のバージョンなど)
Eclipse,Tomcat,MySQL
(全て最新バージョン)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/11 00:30