Хей.В моем приложении Lego house есть сайт «Сотрудник», где сотрудник может просматривать все заказы, сделанные всеми клиентами.С левой стороны он видит заказы, некоторые из которых отправлены, а справа - заказы, а некоторые нет.Нажав кнопку под заказом, заказ изменится на «поставленный», и он будет обновлен в моей базе данных.

На моем сайте jsp есть цикл for, который перебирает все ордера в этом списке.Список содержит идентификатор заказа из каждого заказа.Этот порядок я хотел бы передать моему сервлету.OrderId передается дальше моему DataMapper, который затем меняет мой заказ с «не отправлено» на «отправлено».Но как я могу передать правильный orderId со стороны jsp сервлету?Вот как далеко я зашёл ..
из employee.jsp
<div id="notShipped">
<h2>Orders not yet shipped</h2>
<%
for (OrderClass list : allOrders) {
if (list.isShipped() == false) {
out.println(list.toString());
session.setAttribute("id", list.getOrderId());
%>
<form action="FrontController" method="POST">
<input type='hidden' name='command' value='sendOrder'/>
<button type='submit'> Send order </button>
<br>
<%}
}
%>
</div>
</html>enter code here
Отправьте сервлет заказа, где я хочу перехватить идентификатор заказа, и отправьте его дальше в мой datamapper:
public class SendOrder extends Command {
@Override
String execute(HttpServletRequest request, HttpServletResponse response) throws LoginSampleException, CalculationException {
int orderId = (int) request.getSession().getAttribute("id");
AdminMapper am = null;
am.sendOrder(orderId);
return "employeepage";
}
}
класс команд:
abstract class Command {
private static HashMap<String, Command> commands;
private static void initCommands() {
commands = new HashMap<>();
commands.put("login", new Login());
commands.put("register", new Register());
commands.put("backdoor", new Backdoor());
commands.put("measurements", new Order());
commands.put("showorders", new ShowOrders());
commands.put("checkout", new CheckOut());
commands.put("previousorder", new PreviousOrder());
commands.put("sendOrder", new SendOrder());
}
static Command from(HttpServletRequest request) {
String commandName = request.getParameter("command");
if (commands == null) {
initCommands();
}
return commands.getOrDefault(commandName, new UnknownCommand());
}
abstract String execute(HttpServletRequest request, HttpServletResponse response)
throws LoginSampleException, CalculationException;
}
Фронт-контроллер:
protected void processRequest( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException, CalculationException {
try {
Command action = Command.from( request );
String view = action.execute( request, response );
request.getRequestDispatcher( "/WEB-INF/" + view + ".jsp" ).forward( request, response );
} catch ( LoginSampleException | CalculationException ex ) {
request.setAttribute( "error", ex.getMessage());
String currentSite = (String) request.getParameter("currentSite");
String notIndex = "/WEB-INF/";
if(currentSite.equals("index")){
notIndex = "";
}
request.getRequestDispatcher(notIndex + currentSite +".jsp" ).forward( request, response );
}
}
Заранее благодарю всех за помощь!