onclick="unblock(<%
=contracts.get(i).getNumber();%>)" в дескриптере пропустили знак равно.
function unblock() { - наверно функция должна принимать number или id?
function unblock(id) {
Сообщить об успешности или не успешности операции на сервере можно с помощью кода статуса в ответе от сервера.
Например операция удаления
Сервлет
@WebServlet("/test")
public class TestServlet extends HttpServlet {
private static final Logger LOG = LoggerFactory.getLogger(TestServlet.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/test.jsp").forward(req, resp);
}
@Override
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
long id = Long.parseLong(req.getParameter("id"));
testRemove(id);
resp.setStatus(200);
} catch (Exception e) {
LOG.error("Error remove: {}", e.getMessage());
resp.setStatus(500);
}
}
private void testRemove(long id) {
if (id < 1) {
throw new RuntimeException("id can't be < 1");
}
}
}
JSP старница
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<p>
<input type="button" value="remove data (OK)" onclick="remove(2)"/>
</p>
<p>
<input type="button" value="remove data (ERROR)" onclick="remove(-1)"/>
</p>
<script>
function remove(id) {
var request = new XMLHttpRequest();
request.open('DELETE', '/test?id=' + id, false);
request.send();
if (request.status == 200) {
alert('Данные упешно удалены')
} else {
alert('Ошибка удаления данных!');
}
}
</script>
</body>
</html>