Мне нужно автозаполнять форму на странице JSP в зависимости от размытия поля codigo_caso. Я передаю простой json-подобный String другому JSP, который извлекает данные, необходимые для заполнения формы.извлекать json из jsp и читать данные в ajax
Я протестировал страницу, и она вызывает второй JSP, который берет правильные данные из БД и создает с ним JSONObject.
Проблема заключается в том, что, похоже, она не возвращает JSON на первую страницу JSP, а код внутри функции успеха не выполняется. [Мне нужно, чтобы она работала в JSP, не сервлет, если это возможно]
Вот сценарий - первый JSP
<script type="text/javascript">
$("#codigo_caso").blur(function() {
var cod = $(this).val();
var dataString1 = {"codigo": cod};
$.ajax({
type: "GET",
url: "otros/codigoCasoDependienteNuevaTarea.jsp",
datatype: "json",
contentType: "application/json; charset=utf-8",
data: dataString1,
cache: false,
success: function(response) {
alert (response);
var jsontest = eval(response);
$(".linea_equipo").val(jsontest("linea_equipo"));
$("#selectArea").filter(function() {
return $(this).jsontest("id_area") === jsontest("area");
}).prop('selected', true);
//("#selectArea").val(area);
$(".listaCentros").jsontest("nombre_centro");
$("#listaRolNuevaTarea").filter(function() {
return $(this).jsontest("id_rol") === jsontest("rol");
}).prop('selected', true);
//("#listaRolNuevaTarea").val(rol);
}
});
});
Вот СПЯ извлечения данных из БД [intented в вернуть JSON]
<%@page import="java.sql.*"%>
<%@page import="clases.*"%>
<%@page import="org.json.simple.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<%
String data1 = "", linea = "", centro = "", error = "No existe el caso indicado", cadenaOut = "";
int area, rol;
Connection conex = (Connection) session.getAttribute("conexion");
Statement st = conex.createStatement();
String sql = "";
String cod = request.getParameter("codigo").toString();
JSONObject j = new JSONObject();
if (cod != null && !cod.isEmpty() && !cod.equals("0")) {
sql = "SELECT t1.linea_equipo,t1.id_rol, t2.id_area,t2.nombre_centro "
+ " FROM gen_casos_prisma t1 LEFT OUTER JOIN gen_centros t2 ON "
+ " t1.id_centro = t2.id_centro "
+ " WHERE "
+ " t1.CODIGO_CASO = " + cod;
ResultSet rs = st.executeQuery(sql);
rs.beforeFirst();
if (rs.next()) {
linea = rs.getString("linea_equipo");
area = rs.getInt("id_area");
centro = rs.getString("nombre_centro");
rol = rs.getInt("id_rol");
j.put("linea_equipo", linea);
j.put("id_area", area+"");
j.put("nombre_centro", centro);
j.put("id_rol", rol+"");
System.out.println(j.toString());
} else {
/* return variable error */
}
}
response.setContentType("application/json");
response.getWriter().print(j);
out.flush();
//out.print(j.toJSONString());
%>
</html>
Когда код печатает JSON, [второй JSP, почти в конце] он показывает мне что-то вроде этого:
- { "id_area": "268435465", "linea_equipo": "МОДУЛЬНАЯ ххх", "nombre_centro": "Центр ххх", "id_rol": "2"}
спасибо. Это сработало. Я должен был сделать другие исправления в моем js-коде, чтобы правильно заполнить всю форму, но основная проблема была решена. – bateras