Как показать все результаты поиска из базы данных на странице JSP с разбивкой по страницам, используя jquery и сервлеты - PullRequest
0 голосов
/ 18 июня 2019

У меня есть страница jsp, где пользователь может искать свой профиль в соответствии со своими требованиями, это пользовательский интерфейс моей страницы jsp Search Page

После того, как я выбрал все необходимые данные и нажал кнопку поиска, яотправка запроса к сервлетам через запрос ajax.

Это мой запрос ajax:

function searchProfile(){
var url="searchProfile";
var gender = $("#genderDropDownList").val();
var fromAge = $("#fromAgeDropDownList").val();
var toAge = $("#toAgeDropDownList").val();
var manglikStatus = $("#ManglikDownList").val();
var annualIncome = $("#AnnualIncomeList").val();

if(gender==""){     
    $("#invalidData").html("<font color='#bd2130' style='font-family:arial;font-size:80%;'>Please select Gender</font>");
    $("invalidData").removeClass("d-none");
    return false;
}else{
    $("#invalidData").html("");
}
if(fromAge>toAge){
    $("#invalidData").html("<font color='#bd2130' style='font-family:arial;font-size:80%;'>From Age should not be greater than To Age</font>");
    $("invalidData").removeClass("d-none");
    return false;
}else{
    $("#invalidData").html("");
    $.ajax({
        url:url,
        type:'POST',
        dataType:'json',
        data:{
            gender:gender,
            fromAge:fromAge,
            toAge:toAge,
            manglikStatus:manglikStatus,
            annualIncome:annualIncome
        },
        success: function(result){
            $('#ignorecrossbefore_1').show();
             $(".input-data").each(function(i, result){                      
                    $('#searchProfileName').html(result[i].userBirthName);
                    $('#cityName').html(result[i].presetnAddressCity);
                    $('#age').html(result[i].userAge);
                    $('#heigth').html(result[i].userheight);
                    $('#caste').html(result[i].userCasteName);
                    $('#eudcation').html(result[i].highestEducation);
                    $('#occupation').html(result[i].employedIn);
                });

        },
        error: function(jqxhr) {
            $('#invalidData').html("<font color='#bd2130' style='font-family:arial;font-size:80%;'>Something went wrong</font>");
            $("invalidData").removeClass("d-none"); 
            return false;
        }
    });


}

}

Когда этот запрос ajax отправляет сервлетам, он возвращает jsonArray какответ.

Это мой код сервлета для него.

package com.IDM.Controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.IDM.DaoController.DBConnection;

/**
 * Servlet implementation class SearchProfileController
 */
@WebServlet("/SearchProfileController")
public class SearchProfileController extends HttpServlet {
private static final long serialVersionUID = 1L;
   String sqlQuery;
  ArrayList<Object> list;
  JSONObject jsonObj;
  JSONArray jsonArr;
public SearchProfileController() {
    super();
    // TODO Auto-generated constructor stub
}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/json");
    String genderName = request.getParameter("gender");
    String fromAge = request.getParameter("fromAge");
    String toAge = request.getParameter("toAge");
    String ManglikStatus = request.getParameter("manglikStatus");
    String AnnualIncomeList = request.getParameter("annualIncome");
    System.out.println(genderName);
    System.out.println(fromAge);
    System.out.println(toAge);
    System.out.println(ManglikStatus);
    System.out.println(AnnualIncomeList);

    /*sqlQuery ="Select * from UserDetails where Gender='"+genderName+"'"+ "and Age between "+"'"+fromAge+"'" 
                +"and" +"'"+toAge+"'" +"and MaglikStatus='"+ManglikStatus+"'"+"AND PartnerSalary ='"+AnnualIncomeList+"'";*/
    sqlQuery ="Select * from UserDetails where Gender='"+genderName+"'";
    Connection con = DBConnection.connectDB();
            JSONArray details = null;
            try {
                details = getDBResultList(sqlQuery, con);
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            response.getWriter().write(details.toString());

}

public JSONArray getDBResultList(String query, Connection con) throws JSONException {
    jsonObj = new JSONObject();
    jsonArr=new JSONArray();
    ArrayList<UserDetails> userDetailsList = new ArrayList<>();
    try {
        ResultSet result  = DBConnection.getDBResultSet(con, sqlQuery);
        if(result.next()) {
                while(result.next()) {  
                    String userBirthName = result.getString("BirthName");
                    String presetnAddressCity = result.getString("PresentAddressCity");
                    String userAge = result.getString("Age");
                    String userheight = result.getString("Height");
                    String userCasteName = result.getString("Caste");
                    String highestEducation = result.getString("HighestEducation");
                    String employedIn = result.getString("EmployedIn");
                    String userPhoto = result.getString("uploadedImage");

                    JSONObject jObj = new JSONObject(); 
                    jObj.put("userBirthName", userBirthName);
                    jObj.put("presetnAddressCity", presetnAddressCity);
                    jObj.put("userAge", userAge);
                    jObj.put("userheight", userheight);
                    jObj.put("userCasteName", userCasteName);
                    jObj.put("highestEducation", highestEducation);
                    jObj.put("employedIn", employedIn);
                    jObj.put("userPhoto", userPhoto);

                    jsonArr.put(jObj);
                }
            //  jsonArr = new JSONArray(userDetailsList);







        }else {
            System.out.println("No Result found");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
        DBConnection.closeDBConnection(con);
    }
    return jsonArr;
}

}

Это мой код JSP, в котором мне нужно показать результат поиска.

<div id="ignorecrossbefore_1" style="display:none">
            <div class="posrelative">
                <img width="150" height="150" border="0" src="https://content.screencast.com/users/Ravi9873/folders/Jing/media/86eb3246-c11b-48fc-bc00-0fce0ebe4c55/2019-06-19_0914.png">
            </div>
            <div class="fleft mediumtxt" style="width: 900px; margin-left: 177px; margin-top: -142px;">
                <div class="location-icon clr5 padb10" alt="Location" title="Location">
                    <h4><span class="input-data" id="searchProfileName"></span></h4>
                </div>
                    <ul>
                    <li><span class="input-field">City </span> <span
                            class="input-data" id="cityName"></span></li>
                        <li><span class="input-field">Age </span> <span
                            class="input-data" id="age"></span></li>
                        <li><span class="input-field">Height </span> <span
                            class="input-data" id="heigth"></span></li>
                        <li><span class="input-field">Caste</span><span
                            class="input-data" id="caste"></span></li>
                        <li><span class="input-field">Education</span><span
                            class="input-data" id="eudcation"></span></li>
                        <li><span class="input-field">Occupation</span><span
                            class="input-data" id="occupation"></span></li>
                    </ul>
                    <a class="btn btn-primary btn-sm search-btn-padding"
                            style="color: white;" onclick="searchProfile()">View Profile</a>

                </div>
            </div>

И я хочу показать результат, как показано ниже: image

Search Result Page

Я получаю ответ в ajax в jsonArray, но не знаю, как его повторить в jspстраница для отображения всех данных результатов на странице JSP.

Вы можете видеть изображение ниже, я получаю 6 результатов в запросе ajax, но не знаю, как показать 6 результатов на странице jsp на основе ответа.Result console log

Заранее благодарим за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...