allora, formalmente un form ha una sola action, per cui hai due possibili workaround:
- ti avvali di javascript: cambi l'action in qualcosa di specifico, in base al submit premuto.
- usi la notazione "array" e crei diversi submit (che è quello che stai facendo).
Ti posto un esempio della seconda
form.jsp
codice:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Form - Multiple Actions</h1>
<form method="post" action="landing1.jsp">
Nome: <input type="text" name="nome" />
<input type="submit" name="submit[]" value="Invia Form 1" />
<input type="submit" name="submit[]" value="Invia Form 2" />
<input type="submit" name="submit[]" value="Invia Form 3" />
</form>
</body>
</html>
action: landing1.jsp
codice:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>What did we send?</h1>
<%
out.println("Submit: "+request.getParameter("submit[]")+"
");
out.println("Nome: "+ request.getParameter("nome"));
%>
</body>
</html>
nota come vengono scritti/passati in form.jsp e recuperati in landing1.jsp gli attributi name dei submit