Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315

    Struts: tasto aggiorna ripete operazione

    Salve,
    sto realizzando un applicazione web utilizzando il framework struts. Il problema č questo: faccio un operazione di inserimento nel database, va a buon fine. A questo punto se clicco su "aggiorna" del browser ripete l'operazione di inserimento.

    Qualcuno sa darmi indicazioni al riguardo?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    dopo operazioni di inserimento o in genere modifica, al posto di un dispatch devi fare una redirect

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Cosa intendi per dispatch?

    Io quando finisco l'operazione di inserimento faccio un forward dallo struts config alla stessa pagina da cui č partita l'operazione.

  4. #4
    Fai un forward ad una pagina di conferma, piuttosto che alla stessa pagina dove esegui l'operazione.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Chi mi ha chiesto di fare questa applicazione vuole che il forwarsd sia alla stessa pagina.

    Ecco perchč mi chiedo se č una cosa intrinseca di struts oppure posso aggirare questo problema.

    Qualcuno ha mai avuto lo stesso problema?

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    Originariamente inviato da koala81
    Cosa intendi per dispatch?

    Io quando finisco l'operazione di inserimento faccio un forward dallo struts config alla stessa pagina da cui č partita l'operazione.
    mi spiego meglio
    di solito dopo un inserimento di un record bisogna fare un redirect a una pagina in modo che, anche se l'utente aggiorna la pagina, non succede niente di male, perché al massimo riesegue l'azione del redirect e non quella che esegue l'inserimento
    <action input="/t09EventoDettaglio.jsp" name="t09EventoBean" path="/t09EventoAction" scope="request" type="it.autostrade.ect.action.T09EventoAction" validate="true">
    <forward name="backToTask" path="/taskEventoAction.do?command=indietro" redirect="true" />
    </action>
    io usavo questo xml
    se mi ricordo bene, dopo l'inserimento facevo il findForward("backToTask")

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Anche se la pagina č la stessa???

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Per rendere pių chiara la cosa, posto questo frammento di codice

    codice:
    <action path="/modifyprof"       type="comm.visualbuilder.struts.action.ManageModificaConsAction" >
          <forward name="failure" path="/index.jsp" />
          <forward name="success" path="/modificacons.jsp" />
        </action>
            
        <action
          attribute="ProfEsterno"
          name="ProfEsterno"
          path="/modifyprofaction"
          scope="request"
          validate="false"
          type="comm.visualbuilder.struts.action.ModifyProfAction">
          <forward name="failure" path="/index.jsp" />
          <forward name="database.failure" path="/modifyprof.do" />
          <forward name="success" path="/modifyprof.do" />
        </action>
    l'Action "ManageModificaConsAction" mi rimanda alla jsp con la schermata per inserire un nuovo consullente. Quando faccio "nuovo" da quella schermata richiamo l'azione "ModifyProfAction" che fa l'effettivo inserimento nel database. se ho successo mi richiama l'azione (path="/modifyprof.do") per ritornare alla stessa schermata. E' a questo punto che se faccio "Aggiorna" dal browser mi ripete l'inserimento.
    Spero di essere stato chiaro.

  9. #9
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    devi impostare redirect="true" al forward success

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Fatto. Ma il risultato č lo stesso...

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.