У меня есть страница jsp, где пользователь может искать свой профиль в соответствии со своими требованиями, это пользовательский интерфейс моей страницы jsp ![Search Page](https://content.screencast.com/users/RaviKumar87/folders/Jing/media/4bb2b6b8-159b-4727-933c-dac1f56f7d07/2019-06-18_2011.png)
После того, как я выбрал все необходимые данные и нажал кнопку поиска, яотправка запроса к сервлетам через запрос 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](https://content.screencast.com/users/Ravi9873/folders/Jing/media/3f03fe91-a3a8-4135-b2ca-b0895fa10e1d/2019-06-19_0945.png)
Я получаю ответ в ajax в jsonArray, но не знаю, как его повторить в jspстраница для отображения всех данных результатов на странице JSP.
Вы можете видеть изображение ниже, я получаю 6 результатов в запросе ajax, но не знаю, как показать 6 результатов на странице jsp на основе ответа.![Result console log](https://content.screencast.com/users/RaviKumar87/folders/Jing/media/d4e34b83-9beb-4621-8b59-b67501bdd62e/2019-06-18_2033.png)
Заранее благодарим за помощь.