Je récupère des données de la base de données et les affiche sous forme de tableau dans une variable JSP
, mais je ne sais pas comment les afficher dans des champs de texte.
par exemple.
JSP
Mon code:
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();
}
Assurez-vous d’avoir inclus le pilote jdbc dans votre projet et «construisez-le». Ensuite:
Établissez la connexion à la base de données et récupérez le résultat de la requête.
Renvoie le résultat de la requête et l'enregistre dans un objet de ResultSet.
Parcourez l'objet et affichez les résultats de la requête.
L'exemple de code ci-dessous illustre cela en détail.
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;
}
J'ai essayé de rendre cet exemple aussi détaillé que possible. Si vous avez des questions, demandez.
<input type="text" value=<%=rs.getString("table_coloumn_name")%>></input>
Quelle base de données utilisez-vous? Par exemple, MySQL et MS Access ont chacun une méthode différente pour se connecter à la base de données.
Si vous pouvez établir une connexion, procédez comme suit:
Si vous avez des problèmes, je peux vous fournir du code pour le réparer.
Ajoutez la valeur extraite à un objet de requête ou de session et récupérez-la sur la page JSP à l'aide de scripts et d'expressions. ou vous pouvez aussi utiliser JSTL/EL comme ci-dessous
Dans le gestionnaire ou la servlet, ajoutez la valeur extraite de la base de données à l'objet de requête
request.setAttribute(theValueFromDB, "value");
puis transférez ou redirigez la page vers le JSP correspondant. Dans la page 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();%>