1. JSP скриплеты - это очень плохой тон и не рекомендуется делать.
Это нужно делать в сервлете (не в jsp)
ContractServiceImpl contractService = new ContractServiceImpl();
List<Contract> contracts = contractService.getAllContractsForUser(user.getUserId());
потом contracts передавать в jsp через атрибут реквеста
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ContractServiceImpl contractService = new ContractServiceImpl();
List<Contract> contracts = contractService.getAllContractsForUser(user.getUserId());
request.setAttribute("contracts",contracts);
RequestDispatcher requestDispatcher;
requestDispatcher = request.getRequestDispatcher("/you_jsp_page.jsp");
requestDispatcher.forward(request, response);
}
и потом уже на стороне JSP с помощью JSTL выводить данные
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<hmtl>
...
<body>
<table>
<c:forEach items="${contracts}" var="contr">
<tr>
<td>${contr.name}</td>
<td>${contr.number}</td>
....
</tr>
</c:forEach>
</table>
</body>
</hmtl>
2. Если пока не хотите заморачиваться с JavaScript-ом и AJAX-ом, то есть более простой вариант с формой.а) у сущности Contract должен быть уникальный id, по которому вы могли бы удалить/выбрать/изменить его.
б) в JSP вашу таблицу в тег и добавьте еще один столбец с чекбоксом, у которого в качестве value будит id Contract-а. Добавить кнопку "Удалить выбранное".
<form method="post" action="ваш сервлет">
<input type="submit" value="Удалить выбранное"/>
<table>
<c:forEach items="${contracts}" var="contr">
<tr>
<td><input type="checkbox" name="id" value="${contr.id}"/></td>
<td>${contr.name}</td>
<td>${contr.number}</td>
....
</tr>
</c:forEach>
</table>
</form>
с) Реализовать в вашем сервлете метод обработки пост запросов где получите из реквеста выбранные Id и выполните удаление.
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String[] ids = req.getParameterValues("id");
if (ids != null && ids.length > 0) {
ContractServiceImpl contractService = new ContractServiceImpl();
contractService.removeAll(ids);
}
doGet(req, resp);
}
doGet(req, resp); - метод реализован выше. Произойдет новая выборка контрактов, только уже без удаленных и передастся в JPS. Обновится страница