我正在Netbeans 8.1上使用Java Web,实际上我正在使用AJAX开发这个问题,这个问题阻止了我:
这是我在JSP中的JS函数:
$("#formAddFundo").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get the action attribute from the <form action=""> element */
var $form = $(this),
url = $form.attr('action');
var status = 0;
if (document.getElementById("chkFundo").checked)
var status = 1;
/* Send the data using post with element id name and name2*/
var posting = $.post(url, {
hIdFundo: $('#hIdFundo').val(),
txtNombre: $('#txtNombre').val(),
status: status,
btnAddGrid: $('#btnAddGrid').val()
});
/* Alerts the results */
posting.done(function(data) {
$.get('addFundo', function(responseJson) {
var t = $('#dt_basic').DataTable();
t.clear();
$.each(responseJson, function(index, objeto) { // Iterate over the JSON array.
var estado;
if (objeto.status === 1) {
estado = "Activo";
} else {
estado = "No activo";
}
t.row.add([
objeto.idfundo,
objeto.nombre,
estado,
"<i class=\"btn btn-secondary fa fa-pencil\" onclick=\"update('" + objeto.nombre + "', '" + objeto.idfundo + "', '" + objeto.status + "');\"></i></a><a><i class=\"btn btn-secondary fa fa-trash-o\" onclick=\"borrar('" + objeto.nombre + "', '" + objeto.idfundo + "');\"></i></a>"
]).draw(false);
});
$('#alerta').html("<div class='alert alert-warning'><a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a><strong>Atención!</strong> " + <%= session.getAttribute("Respuesta") %> +" </strong></div>");
});
limpiar();
});
});
这是我的servlet,JS去获得响应:
String json = new Gson().toJson(listaFundos);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
request.getSession().setAttribute("Respuesta", resp);
现在。当POST方法用Json结束他的函数时,我需要在JSP中打印HTML(#alerta)而不刷新页面。会话变量和scripplet仅在页面刷新时执行一次,而不是用于进一步执行..
$('#alerta').html("<div class='alert alert-warning'><a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a><strong>Atención!</strong> " + <%= session.getAttribute("Respuesta") %> +" </strong></div>");