Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como buscar os dados no JSP dentro da tabela com base na seleção suspensa


Eu crio um exemplo completo para resolver seu problema. Você não especificou claramente onde está recebendo o erro e é um pouco difícil entender seu código.

Apenas tente executar este programa, garanto que certamente resolverá seu problema e lhe dará um melhor entendimento em JSP, Servlet e DBCode também.

Quando você executa este programa.

Dois drop-down na página JSP.

1 - para exibir todos os estados (valor dinâmico padrão recuperado do banco de dados)

2 - para exibir cidades ao selecionar qualquer estado.

Quando você seleciona qualquer estado, a cidade será exibida na caixa de combinação da cidade e, após a atualização da página, a posição do estado selecionado também ficará estável na combinação de estado.

Assim como quando você seleciona o estado, eu exibi os registros de uma tabela diferente em formato tabular ou posso dizer usando as tags table,tr,td.

Três tabelas no banco de dados - Estados, cidade, dados

States - para exibir todos os estados padrão no combo de estado quando você executar example.City - quando você selecionar o estado, a cidade virá com base no estado selecionado.data - quando você selecionar o estado, os dados serão mostrados em forma de tabela de nada).

Arquivos - JSP (cliente, código do lado do servidor), Servlet (código do lado do servidor), DBCoding (código do banco de dados)

IDE - MyEclipseDatabase - MS SQL 2012

Codificação JSP
<%@ 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>

Codificação de servlet
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 - Código do banco de dados
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; 
    }
}

Depois de executar este exemplo, se você receber alguma consulta, basta me enviar uma mensagem e eu resolverei com certeza.