Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    [JSP]getElementById è null

    Ciao a tutti.

    Ho una pagina jsp(che chiameremo A) che apre una popup(che chiameremo B), la quale passa per una servlet.
    La serlvet reindirizza a una jsp(che chiameremo C) mantenendo aperta A

    Nella jsp chiamante(A) ho:
    codice:
      <TR>
    	  <TD colspan="10">
    		<FONT color="red"><INPUT id="msgErrorCoperturaPolizza" style="border: none; color: red; font-weight: bold; background-color:#bed3df;" readonly="readonly" value="" size="100" ></FONT>
    	  </TD>
      </TR>
    Nella jsp C ho:

    codice:
    <%
    String errore = (String)session.getAttribute("erroreCoperturaPolizza");
    		if(errore!=null)
    		{
    		%>
    			alert('messaggio errore: '+top.opener.document.getElementById('msgErrorCoperturaPolizza').value);
    			try{
    				top.opener.document.getElementById('msgErrorCoperturaPolizza').value = '<%= errore %>';
    			}catch(Exception){}
    		
    		<% } %>
    L'alert non funziona cosi ma funziona se scrivo
    codice:
    			alert('messaggio errore: '+top.opener.document.getElementById('msgErrorCoperturaPolizza'));
    e mi da "object".
    Inoltre se faccio CNTRL+N sulla jsp C mi dà NullPointerException:
    codice:
    java.lang.NullPointerException
    	at java.lang.Throwable.<init>(Throwable.java)
    	at java.lang.Throwable.<init>(Throwable.java)
    	at java.lang.NullPointerException.<init>(NullPointerException.java:60)
    	at org.apache.jsp._SisPragmaDett._jspService(SisPragmaDett.jsp  :78)
    	at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
    	at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:669)
    	at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:767)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    	at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    	at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    	at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    	at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    	at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java)
    	at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
    	at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
    	at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
    	at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116)
    	at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
    	at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
    	at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
    	at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
    	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java)
    	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
    Ciao a tutti e grazie anticipatamente

  2. #2

    ciao

    Ciao,
    ho letto il tuo problema... sembrerebbe che nei giri che fai perdi il riferimento all'opener..
    cmq sia credo che la servlet nel tuo caso non ti serva.. perkè non provi ad aprire una modaldialog e sparare il messaggio di errore in questa pagina?
    in effetti non ti serve nemmeno una variabile di sessione visto che il messaggio ce l'hai nel parent, mica ti conviene..

    per il null pointer exception dovresti gestire il postback della pagina

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    Re: ciao

    Ciao morpheus4java grazie per la tempestività
    Originariamente inviato da morpheus4java
    credo che la servlet nel tuo caso non ti serva.. perkè non provi ad aprire una modaldialog e sparare il messaggio di errore in questa pagina?
    in effetti non ti serve nemmeno una variabile di sessione visto che il messaggio ce l'hai nel parent, mica ti conviene..
    Nella servlet richiamo un metdo che mi recupera il messaggio di errore in una tabella del db.
    Ho provato a settare l'attributo alla request invece che alla sessione ma mi ritorna null
    Scusa la parziale ignoranza, ma cos'è una modaldialog?

    per il null pointer exception dovresti gestire il postback della pagina
    Cos'è il postback della pagina?

    Grazie

  4. #4

    OHIIIII

    il messaggio di errore
    se sai a priori che la pratica ha un errore (e penso proprio di si :-P) caricalo quando carichi la pagina PADRE magari lo metti in un campo hidden, fuori 1, se no va bene anke lasession ma l'operazione va fatta prima no?
    In pratica , credo non ti convenga che ogni volta che aprono la popup accedi al db per visualizzare il solito messaggio di errore....


    poi..

    modaldialog = è una pop up che deve essere chiusa prima che tu possa ritornare sul parent, in pratica non puoi continuare a navigare sull'istanza del browser padre se non hai chiuso il figlio(la pop up).

    postback = mmmmm beh in sintesi è la capacità di gestire il tasto aggiorna del browser.
    Sostanzialmente se la richiesta è sempre la stessa (request iniziale e tutte le volte che cliccano su aggiorna o F5) non conviene richiamera azioni che sarebbero sempre le stesse.

    spero di esserti stato di aiuto

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86
    Grazie,
    ho risolto, almeno in parte.

    Accedo sempre al campo nascosto con il top.document.getElementById(message).value nella popup precedentemente chiamata C ma il campo lo passo come parametro dalla servlet alla popup(C) e non come attributo della sessione

    Con più calma cercherò di trovare una soluzione migliore
    Grazie mille

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 © 2026 vBulletin Solutions, Inc. All rights reserved.