Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    42

    Struts - Form di modifica

    Buongiorno a tutti,
    devo sviluppare una form di modifica con Struts passando il classico parametro id (chiave primaria del db).

    Secondo voi, mi conviene puntare il link ad una Action che popola un oggetto per popolare la form e una seconda action per procedere con l'update, oppure ci sono soluzioni piu' eleganti?

    Grazie a tutti
    Beck74

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    In questi casi di solito si ha una action che recupera i dati dal database e popola il form in modo che la jsp li visualizzi tramite i custom-tag di struts <html:...>.

    Poi ci sarà un'action (richiamata premendo il tasto submit) adibita all'aggiornamento sul database che fa esattamente il contrario di quanto sopra. Con i dati del form viene costruito un "business object". Questo viene passato al model (alla logica applicativa per intenderci) per effettuare l'update sul database.

    Spero di aver risposto alla tua domanda.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    42
    Grazie manu1980,
    quindi era come pensavo sono necessarie due action!

    Grazie 1000 per il consiglio davvero prezioso
    carmine

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    42
    Ciao Manu1980,
    ho seguito il tuo consiglio ma adesso mi ritrovo senza poter usare i tag html di struts( <html:text>) di struts!

    Ecco il codice utilizzato:

    <logic:iterate id="id" name="artistamod" scope="request">

    Id artista: <bean:write name="idartista" />
    <tr>
    <td>Artista</td>
    <td><input type="text" value="<bean:write name="id" property="artista" />"></td>
    </tr>

    <tr>
    <td>Biografia</td>
    <td><textarea cols="100" rows="20"><bean:write name="id" property="biografia" /></textarea></td>
    </tr>
    <tr>
    <td>Link Itunes:</td>
    <td><input type="text" value="<bean:write name="id" property="itunes" />" size="100"></td>
    </tr>

    <tr>
    <td>Foto:</td>
    <td><input type="text" value="<bean:write name="id" property="foto" />" size="100"></td>
    </tr>

    </logic:iterate>
    </logicresent>
    </table>




    Tutto funziona perfettamente, ma adesso mi chiedo come faccio a validare i campi, visto che non utilizzo un ActionForm?
    Posso utilizzare lo stesso il Validator di Struts?
    Grazie 1000
    Beck74

  5. #5
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da Beck74
    Ciao Manu1980,
    ho seguito il tuo consiglio ma adesso mi ritrovo senza poter usare i tag html di struts( <html:text>) di struts!

    Ecco il codice utilizzato:

    <logic:iterate id="id" name="artistamod" scope="request">

    Id artista: <bean:write name="idartista" />
    <tr>
    <td>Artista</td>
    <td><input type="text" value="<bean:write name="id" property="artista" />"></td>
    </tr>

    <tr>
    <td>Biografia</td>
    <td><textarea cols="100" rows="20"><bean:write name="id" property="biografia" /></textarea></td>
    </tr>
    <tr>
    <td>Link Itunes:</td>
    <td><input type="text" value="<bean:write name="id" property="itunes" />" size="100"></td>
    </tr>

    <tr>
    <td>Foto:</td>
    <td><input type="text" value="<bean:write name="id" property="foto" />" size="100"></td>
    </tr>

    </logic:iterate>
    </logicresent>
    </table>




    Tutto funziona perfettamente, ma adesso mi chiedo come faccio a validare i campi, visto che non utilizzo un ActionForm?
    Posso utilizzare lo stesso il Validator di Struts?
    Grazie 1000
    Beck74
    come non usi un ActionForm. è un form di modifica, l'utente potrà modificare e inviare le modifiche. quindi si che è un form quello. così com'è scritto mostra solo i risultati e niente più.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Ciao, hai fatto un errore di fondo!

    Prima di arrivare alla jsp che hai postato devi creare una nuova action in cui popoli il form con i dati dell'artista presi dalla banca dati. Esempio:

    Codice PHP:
    ArtistaForm artistaForm = (ArtistaFormform;
    Artista artista ejbArtista().getArtista(1);

    artistaForm.setArtista(artista.getArtista());
    artistaForm.setBiografia(artista.getBiografia());
    ... 
    Ricordati di impostare nell'action mapping la proprietà form-bean-name con artistaForm.

    A questo punto nella tua jsp puoi tranquillamente utilizzare i tag html e il validator di struts:

    Codice PHP:
    <html:text property="artista" />
    <
    html:text property="biografia" />
    ... 
    Da quel che ho visto sembra che iteri su una lista di artisti. In questo caso le proprietà del form devono essere indicizzate. Però prima ti conviene farlo funzionare per un artista, poi una volta capito il funzionamento passa alle proprietà indicizzate.

    Un saluto !

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    42
    Ah ecco!!!!!

    Ci provo subito stasera!!!

    Grazie per il prezioso aiuto.

    Ti tengo aggiornato.
    Beck74

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.