Mysql
 sql >> база данни >  >> RDS >> Mysql

как да извлечете данните в JSP вътрешна таблица въз основа на избор от падащо меню

Създавам пълен пример за решаване на вашия проблем. Не сте посочили ясно къде получавате грешка и е малко трудно да разберете кода си.

Просто се опитайте да изпълните тази програма, уверявам ви, че със сигурност ще реши проблема ви и ще ви даде по-добро разбиране на JSP, Servlet и DBCode също.

Когато стартирате тази програма.

Две падащи менюта в страницата JSP.

1 - за показване на всички състояния (извличане на динамична стойност по подразбиране от база данни)

2 - за показване на градове, когато изберете който и да е щат.

Когато изберете който и да е щат, градът ще се покаже в комбинирания списък на града и след опресняване на страницата позицията на избрания щат също ще бъде стабилна в комбинирания списък на щат.

Както и когато изберете състояние, показвах записи от различна таблица в табличен формат или мога да кажа с помощта на тагове table,tr,td.

Три таблици в базата данни - държави, град, данни

Щати - за показване на всички състояния по подразбиране в комбинация от състояния, когато стартирате example.City - когато изберете състояние, градът ще се появи въз основа на избраното състояние.data - когато изберете състояние, данните ще се покажат в таблична форма (Току-що извлечени всички данни вместо базирани от всичко).

Файлове - JSP (код от страна на клиента, сървър), Servlet (код от страна на сървъра), DBCoding (код на база данни)

IDE - MyEclipseDatabase - MS SQL 2012

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>

Кодиране на сървлети

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 - Код на база данни

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; 
    }
}

След като изпълните този пример, ако получите някакво запитване, просто ми пуснете съобщение и аз със сигурност ще го оправя.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите активния брой връзки с отворена база данни в H2/MySQL

  2. Задвижване на phpNames, чувствителни към главни букви за колони

  3. SQL Ред на сортиране по реда, посочен в заявката

  4. mysql персонализирана глобална дефинирана променлива

  5. Как да защитим MySQL бази данни от Ransomware кампании