データベースからデータを取得してJSP
のテーブルに表示していますが、テキストフィールドに表示する方法がわかりません。
例えば.
JSP
にあるテキストフィールドに来る必要があります私のコード:
public class S2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "shoppingCart";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "";
Statement st;
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url + dbName, userName, password);
System.out.println("Connected!");
String pid = request.getParameter("pid");
ArrayList al = null;
ArrayList pid_list = new ArrayList();
String query = "select * from user where uid='" + pid + "' ";
System.out.println("query " + query);
st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
while (rs.next()) {
al = new ArrayList();
out.println(rs.getString(1));
out.println(rs.getString(2));
out.println(rs.getString(3));
out.println(rs.getString(4));
out.println(rs.getString(5));
al.add(rs.getString(1));
al.add(rs.getString(2));
al.add(rs.getString(3));
al.add(rs.getString(4));
al.add(rs.getString(5));
System.out.println("al :: " + al);
pid_list.add(al);
}
request.setAttribute("piList", pid_list);
RequestDispatcher view = request.getRequestDispatcher("/searchview.jsp");
view.forward(request, response);
conn.close();
System.out.println("Disconnected!");
} catch (Exception e) {
e.printStackTrace();
}
プロジェクトにjdbcドライバーが含まれていることを確認し、それを「ビルド」します。次に:
データベース接続を作成し、クエリ結果を取得します。
クエリ結果を返し、ResultSetのオブジェクトに保存します。
オブジェクトをトラバースし、クエリ結果を表示します。
以下のコード例は、これを詳細に示しています。
String label = request.getParameter("label");
//retrieving a variable from a previous page
Connection dbc = null; //Make connection to the database
Class.forName("com.mysql.jdbc.Driver");
dbc = DriverManager.getConnection("jdbc:mysql://localhost:3306/works", "root", "root");
if (dbc != null)
{
System.out.println("Connection successful");
}
ResultSet rs = listresult.dbresult.func(dbc, label);
//The above function is mentioned in the end.
//It is defined in another package- listresult
while (rs.next())
{
%>
<form name="demo form" method="post">
<table>
<tr>
<td>
Label Name:
</td>
<td>
<input type="text" name="label"
value="<%=rs.getString("lname")%>">
</td>
</tr>
</table>
</form>
<% } %>
public static ResultSet func(Connection dbc, String x)
{
ResultSet rs = null;
String sql;
PreparedStatement pst;
try
{
sql = "select lname from demo where label like '" + x + "'";
pst = dbc.prepareStatement(sql);
rs = pst.executeQuery();
}
catch (Exception e)
{
e.printStackTrace();
String sqlMessage = e.getMessage();
}
return rs;
}
私はこの例をできるだけ詳細にしようと試みました。何か質問があれば尋ねます。
<input type="text" value=<%=rs.getString("table_coloumn_name")%>></input>
どのデータベースを使用していますか?たとえば、MySQLとMS Accessでは、データベースに接続するための異なる方法があります。
接続できる場合は、次の手順を実行します
問題がある場合は、それを修正するためのコードを提供できます。
取得した値をリクエストまたはセッションオブジェクトに追加し、スクリプトレットと式を使用してJSPページで取得します。または、以下のようにJSTL/ELを使用することもできます
ハンドラーまたはサーブレットで、データベースから取得した値を要求オブジェクトに追加します
request.setAttribute(theValueFromDB, "value");
次に、ページを対応するJSPに転送またはリダイレクトします。 JSPページ
<input type="text" value="${ requestScope.value}">
while(!rs1.next()&&!rs2.next()){
%>
<td><input type="checkbox" name="pteam" value=<%=rs1.getString("ename")%>>emp_name: </td>
<%x++;}}st.close();con.close();%>