Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Struts e le eccezioni

    Ciao a tutti sono nuovo del forume spulciando non ho trovato una soluzione al mio problema.


    devo occuparmi della gestione delle eccezioni tramite Struts:
    Ecco cosa volevo usare:
    Configurare sullo struts-config una global Exception
    <global-exceptions>
    <exception key="label.eccezione"
    type="it.esempi.MiaException"
    handler="it.esempi.MyExceptionHandler"/>
    </global-exceptions>

    L'eccezione dovrebbe venire catturata quindi dal mio MyExceptionHandler.

    Ora però vorrei sapere da dove dovrei rilanciarla la mia eccezione appena creata? dalla Action? ossia inserire la clausola throws MiaException?

    E' la prima volta che mi trovo a dovere affrontare in prima persona la gestione di eccezioni, ogni consiglio è ben accetto.

    Sto usando le LookupDispatchAction di Struts.

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    throws MiaException nel metodo execute delle action

  3. #3
    Usando le LookupDispatchAction in realtà non ho il metodo Execute ma comunque allo stesso modo tutti i metodi sono degli "execute".
    Quindi ho dovuto rilanciare l'eccezione da tutti i metodi.

    Sapreste dirmi qual'è il modo più corretto per prendere l'eccezione e stamparla sulla pagina?
    Nel senso struts dovrebbe avere dei tag o altro appositi o sbaglio?

    Grazie della risposta.

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    io ho fatto così
    non so se sia il modo più corretto
    nella jsp
    Exception exception = (Exception)request.getAttribute(Globals.EXCEPTION_ KEY);

  5. #5
    Con java risulta facile ma dovendo usare solo ed unicamente JSTL o JavaScritp o i Tag di Struts, mi chiedevo se proprio questi utlimi potessero dare una mano per reperire e visualizzare, a parte un messaggio di errore da me inserito, anche visualizzare lo stacktrace dell'eccezione.

    Quest'ultimo poi credo che lo trasformerò in Stringa per essere più facile da gestire.

    Avete suggerimenti?
    Grazie

  6. #6
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Sicuramente si può stampare il messaggio di errore appropriato con html:errors, ma non saprei proprio come stampare lo stack....

  7. #7
    Ok ok faccio passi avanti
    Stampa su pagina il mio stack tramnquillamente con i tag JSTL .. solo
    che mi perdo la chain di eccezioni..

    E non sò perchè in quanto prima che arrivi alla mia action la stessa eccezione viene rilanciata più volte e allo stesso modo faccio io.
    Solo che nella Action contiene l'intera Chain da cui è scaturita l'eccezione, mentre una volta arrivata al mio Handler ha solo l'ultima parte.

    Sapreste dirmi come mai mi perdo il resto?
    Ciaps e grazie ancora.

  8. #8
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Non so aiutarti.... ma già che ci siamo mi dici come stampi lo stack con JSTL? può sempre far comodo....

  9. #9
    Guarda non è che stampo il printstacktrace direttamente nel mio handler lo trasformo semplicemente in un Array di Stringhe, che salvo in una List una ad una e rimando in visualizazione tramite c:forEach ^^.

    Questo nell Handler
    ********************
    StackTraceElement[] ste = ex.getStackTrace();
    List righe= new ArrayList();
    String riga= "" + ex.getMessage();
    descriptions.add(riga);
    for (int i = 0; i < ste.length; i++) {
    riga= "" + ste[i];
    righe.add(riga);
    }
    request.setAttribute("miaLista",righe);
    ********************
    Questo nella pagina dopo aver mandato la lista tramite request.

    <C:forEach var="linea" items="miaLista">
    <cut value="linea">
    </c:forEach>

    Linea è una singola riga del classico StackTrace che vedi nella SytemOut standard.

    Ma purtroppo rimane il fatto che non riesco a stamapre tutta la chain.

  10. #10
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Ah, ok, chiaro! Pensavo avessi trovato qualche tag o attributo delle librerie di struts che permettevano di farlo direttamente! Grazie comunque!

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.