Mysql
 sql >> Datenbank >  >> RDS >> Mysql

wie man die Daten in der JSP innerhalb der Tabelle basierend auf der Dropdown-Auswahl abruft

Ich erstelle ein vollständiges Beispiel zur Lösung Ihres Problems. Sie haben nicht klar angegeben, wo Sie Fehler erhalten, und es ist ein bisschen schwierig, Ihren Code zu verstehen.

Versuchen Sie einfach, dieses Programm auszuführen, ich versichere Ihnen, dass es Ihr Problem sicherlich lösen und Ihnen auch ein besseres Verständnis in JSP, Servlet und DBCode geben wird.

Wenn Sie dieses Programm ausführen.

Zwei Drop-down-Menüs auf der JSP-Seite.

1 - zum Anzeigen aller Status (Standard dynamischer Wert aus Datenbank abrufen)

2 - zum Anzeigen von Städten, wenn Sie einen beliebigen Staat auswählen.

Wenn Sie einen Staat auswählen, wird die Stadt im Stadt-Kombinationsfeld angezeigt und nach dem Aktualisieren der Seite bleibt die ausgewählte Staat-Position auch in der Staat-Kombination stabil.

Wenn Sie den Staat auswählen, werden Datensätze aus verschiedenen Tabellen im Tabellenformat angezeigt oder mithilfe von Tabellen-, Tr- und Td-Tags angezeigt.

Drei Tabellen in der Datenbank - Staaten, Stadt, Daten

Bundesstaaten – um alle Bundesstaaten standardmäßig in der Bundesstaatskombination anzuzeigen, wenn Sie example.City ausführen – wenn Sie einen Bundesstaat auswählen, wird die Stadt basierend auf dem ausgewählten Bundesstaat angezeigt von allem).

Dateien - JSP (Client, serverseitiger Code), Servlet (serverseitiger Code), DBCoding (Datenbankcode)

IDE – MyEclipseDatabase – MS SQL 2012

JSP-Codierung

<%@ page language="java" import="java.util.*,DBCode.*" pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.ResultSet"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'MyJsp.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <script type="text/javascript">
    function abc()
    {
        document.forms["formname"].submit();
    }
    </script>
  </head>
  <%

  DBCoding db = new DBCoding();
  ArrayList al = new ArrayList();
  al = db.RetrieveStateName();
  String value1="";
   %>
  <body>
  <form action="Servlet1" method="post" name="formname" id="formname">
    <select id="selectvalue" name="selectvalue" onchange="abc()";>

    <%if(request.getParameter("abc")!=null)
    {
    String result = request.getParameter("abc");
    %>
        <%for(int i=0;i<al.size();i++)
        {
            if(al.get(i).equals(result))
            {%>
            <option value= "<%=al.get(i) %>" selected="selected"><%=al.get(i) %></option>
            <%}
            else
            {%>

            <option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
            <%} %>
        <%}%>
    <%}
    else
    { %>

    <%for(int i=0;i<al.size();i++)
    {
     %>
    <option value= "<%=al.get(i) %>"><%=al.get(i) %></option>
    <%} %>

    <%} %>

    </select>

    <%ArrayList ob = new ArrayList(); %>
    <%if(request.getAttribute("City_Name")!=null)
    {
        ob = (ArrayList)request.getAttribute("City_Name");
        %>
        <select id="selectcity" name="selectcity">
        <%for(int j=0;j<ob.size();j++)
        {
        %>
            <option><%=ob.get(j)%></option>
       <%} %>
        </select><br/><br/>
        <table>
        <tr>
        <td>Id</td>
        <td>Name</td>
        <td>Age</td>
        <td>City</td>
        <%
              DBCoding db2 = new DBCoding();
              ArrayList al2 = new ArrayList();
              ResultSet rs = db2.getTable();
              while(rs.next()){
              %>
              <tr>
                <td><%=rs.getString(1) %></td>
                <td><%=rs.getString(2) %></td>
                <td><%=rs.getString(3) %></td>
                <td><%=rs.getString(4) %></td>
            </tr>
               <%
               } %>
    <%} 
    else
    {

    %>
        <select>
        <option></option>
        </select>
    <%} %>
    </form>
  </body>
</html>

Servlet-Codierung

import java.io.IOException;
import java.util.*;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import DBCode.DBCoding;


public class Servlet1 extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public Servlet1() {
        super();
    }

    public void destroy() {
        super.destroy(); 
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String getstatename = request.getParameter("selectvalue");

        DBCoding ob = new DBCoding();
        ArrayList al = new ArrayList();
        al = ob.RetrieveCityName(getstatename);

        request.setAttribute("City_Name", al);

        RequestDispatcher rd = request.getRequestDispatcher("MyJsp.jsp?abc="+getstatename);
        rd.forward(request, response);
    }
    public void init() throws ServletException {
        // Put your code here
    }

}

DBCoding - Datenbankcode

import java.sql.*;
import java.util.*;
public class DBCoding
{
    Connection con;
    PreparedStatement ps;
    ResultSet rs;
    int result=0;
    public DBCoding()
    {
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con=DriverManager.getConnection("jdbc:odbc:SearchAccount");
        }
        catch(Exception ee)
        {}
    }
    public ArrayList RetrieveStateName()
    {
        ArrayList ob = new ArrayList();
        try
        {
        ps = con.prepareStatement("select distinct states from States");
        rs = ps.executeQuery();
        while(rs.next())
        {
            ob.add(rs.getString(1));
        }
        }
        catch(Exception ee)
        {}
        return ob;
    }
    public ArrayList RetrieveCityName(String statename)
    {
        ArrayList ob = new ArrayList();
        try
        {
        ps = con.prepareStatement("select city from city where statename=?");
        ps.setString(1,statename);
        rs = ps.executeQuery();
        while(rs.next())
        {
            ob.add(rs.getString(1));
        }
        }
        catch(Exception ee)
        {}
        return ob;
    }

    public ResultSet getTable()
    {
        ResultSet rs = null;
        try
        {
        ps = con.prepareStatement("select * from data");
        rs = ps.executeQuery();
        }
        catch(Exception ee)
        {}
        return rs; 
    }
}

Wenn Sie nach Ausführung dieses Beispiels eine Frage erhalten, schreiben Sie mir einfach eine Nachricht und ich werde sie sicher klären.