HTML Form annidati JSP MVC

jr_sottomajor

Utente Silver
2 Luglio 2017
96
33
4
79
Salve ragazzi ho un problema riguardante dei form. So che i form annidati non sono permessi, ma a quanto pare ho la necessità di creare un meccanismo del genere. In pratica sto creando un ecommerce di prodotti, e loggando come utente admin ho la possibilità di modificare un prodotto. La necessità di avere un form in un form nasce dal fatto che per caricare l'immagine del prodotto ho bisogno di un form apposito, per modificare nome,descrizione e prezzo un altro form. E quando clicco sul tasto "modifica" si devono apportare le modifiche a tutti i campi dei due form. Allego immagine:.
forms.png

Per quanto riguarda il codice ho una cosa del tipo:

Codice:
<form action="AdminProdotto" method="post">
            <input type="hidden" name="id" value="${prodotto.id}">
            <label>Categorie</label>
            <c:forEach items="${categorie}" var="categoria">
                <input type="checkbox" name="categorie" value="${categoria.id}" <c:if test="${prodotto.categorie.stream().anyMatch(c -> c.id == categoria.id).orElse(false)}">checked</c:if>><label>${categoria.nome}</label>
            </c:forEach>
            <label>Nome</label>
            <input type="text" name="nome" value="${prodotto.nome}">
            <label>Descrizione</label>
            <textarea name="descrizione">${prodotto.descrizione}</textarea>
            <label>Prezzo (cent):</label>
            <input type="number" name="prezzoCent" value="${prodotto.prezzoCent}">
            <label>Immagine</label>

            <label>
                <form action="Upload" method="post" enctype="multipart/form-data">
                    File da caricare: <input type="file" name="file" /><br>
                    <input type="submit" value="Invia" />
                </form>
            </label>


            <input type="submit" value="${operazione}">
            <c:if test="${prodotto != null}">
                <input type="submit" name="rimuovi" value="Rimuovi">
            </c:if>
        </form>

Come faccio a risolvere? Naturalmente ogni form chiamerà la propria servlet, che non posto in quanto il problema attualmente è proprio nello strutturare la pagina. Grazie in anticipo
 
Ciao,
la prima domanda che ti pongo è Hai veramente la necessità di utilizzare i form?
Ti dico questo perchè sono anni che personalmente non li utilizzo e preferisco utilizzare metodi AJAX per dialogare con il backend :)
 
Come potrei fare con ajax? Devo poter modificare tutti i campi prodotto presenti.. le immagini non sono caricate nel database ma semplicemente nel server.