andbin ha scritto:
alex989 ha scritto:
Siccome devo avere entrambi i button nello stesso form, come faccio ad avere due button collegati in uno stesso form con due compiti diversi?
E perché devono essere nello stesso form? E' una richiesta specifica di qualcuno? Tieni presente che hai url di action differenti! E hai anche dati differenti, se fai un update hai più dati mentre se fai un delete pare che hai solo il codice fiscale.
Purtroppo si, devo farlo nello stesso form. Ho provato a mettere due button nel form facendo in questo modo:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page isELIgnored="false"%>
<html>
<head>
<title>Aggiorna cliente</title>
</head>
<body>
<p><strong><a href="../readviewcust">Elenco clienti</a></strong></p>
<form action="../updatecustdet" method="post">
<pre>
<c:forEach var="customer" items="${listCustomer}">
<tr><th><h4>Informazioni di ${customer.cognome} ${customer.nome}</h4></th></tr>
Codice fiscale: <input type="text" name="codicefiscale" value="${customer.codicefiscale}" />
Cognome: <input type="text" name="cognome" value="${customer.cognome}" />
Nome: <input type="text" name="nome" value="${customer.nome}" />
Data nascita: <input type="text" name="datanascita" value="${customer.datanascita}" />
Indirizzo: <input type="text" name="indirizzo" value="${customer.indirizzo}" />
Numero telefono: <input type="text" name="numerotelefono" value="${customer.numerotelefono}" />
Email: <input type="text" name="email" value="${customer.email}" />
<tr>
<input type="submit" class="button" name="editcust" value="Salva cliente" />
<input type="submit" class="button" name="deletecust" value="Elimina" />
</tr>
</c:forEach>
</pre>
</form>
${msg}
</body>
</html>
Il "Salva cliente" funziona, solo che per il button "Elimina" devo passare come parametro il codice fiscale; come si fa a passare un parametro con un form? Metto anche il codice del Controller corrispondente.
@RequestMapping(value = "/updatecustdet", params="editcust", method = RequestMethod.POST)
public ModelAndView updateCustomer(@RequestParam("codicefiscale") String codicefiscale, @RequestParam("cognome") String cognome,
@RequestParam("nome") String nome, @RequestParam("datanascita") String datanascita, @RequestParam("indirizzo") String indirizzo,
@RequestParam("numerotelefono") String numerotelefono, @RequestParam("email") String email, ModelAndView mv, RedirectAttributes redirectAttrs) throws ParseException {
Customer customer = new Customer();
.
.
.
.
@RequestMapping(value = "/updatecustdet, params="deletecust",method = RequestMethod.POST)
public ModelAndView deleteCustomerByCodiceFiscale(ModelAndView mv, @PathVariable("codicefiscale") String codicefiscale)
throws IOException {
int counter = customerDao.deleteCustomer(codicefiscale);
if (counter > 0) {
mv.addObject("msg", "Cliente con codice fiscale " + codicefiscale + " eliminato");
} else {
mv.addObject("msg", "Si è verificato un errore.");
}
mv.setViewName("deletecustomer");
return mv;
}