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

    interazione ajax in struts

    Salve a tutti,
    spero di aver indovinato la sezione del forum dove inserire questo mio quesito.

    Ho un'applicazione struts in cui sto testando una chiamata AJAX.

    Nel file che ho chiamato index.jsp ho inserito questo link (in realtà vorrei usare un tag di struts per richiamare una funzione javascript, ma anche questo mi sfugge per il momento...comunque non è questo il problema principale).

    codice:
    Clicca qui
    Nel file javascript c'è la seguente funzione (uso la libreria zxml):

    codice:
    function prova_ajax() {
        var oXHR = zXmlHttp.createRequest();
        oXHR.open("get", "/prova_ajax");
        oXHR.onreadystatechange = function () {
            if (oXHR.readyState == 4) {
                if (oXHR.status == 200 || oXHR.status == 304) {
                    alert("OK");
                }
                else alert("ERRORE");
            }
        }
        oXHR.send(null)
    }
    In struts-config.xml ho inserito la seguente regola:

    codice:
    <action path="/prova_ajax" type="enel.monitoraggio.controller.ajax.ProvaAjax">
    <forward name="success" path="/WEB-INF/jsp/index.jsp" />
    </action>
    Il codice del controller è il seguente:

    codice:
    public class ProvaAjax extends Action {
    
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                     HttpServletResponse response) throws Exception {
    
            System.out.println("SONO IN PROVA_AJAX");
            
            return mapping.findForward("success");
        }
    }
    Solo che quando clicco sul link ottento sempre l'alert "ERRORE", quando in realtà se il giro viene completato correttamente dovrei ottenere OK
    Non ci sono Queen senza Freddie !

  2. #2
    Ho fatto le seguenti modifiche e adesso funziona:

    In struts-config ho cancellato il parametro forward, che effettivamente non ha senso.
    Nel codice javascript ho sostituito:

    codice:
    oXHR.open("get", "/prova_ajax");
    con:

    codice:
    oXHR.open("get", "prova_ajax.do");
    Nel controller ho aggiunto:
    codice:
    response.addHeader("Content-Type", "text/plain");
    response.setContentType("text/plain; charset=windows-1252");
    response.getOutputStream().print("ciao");
    return null;
    ed ho eliminato:
    codice:
    return mapping.findForward("success");
    Non ci sono Queen senza Freddie !

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.