PDA

View Full Version : [JSP] Leggere variabile di sessione all'interno del tag <script>


Benna80
11-10-2015, 17:32
Salve a tutti, ci sto sbattendo la testa ormai da 2 giorni senza risultato, vi spiego quale è la mia esigenza:

Ho una pagina jsp con all'interno una mappa che sfrutta OpenLayer.
La mappa riesco a posizionarla all'interno dell'html e poi la istanzio fisicamente con del codice apposito all'interno dei tag <script> </script> che ho in fondo alla mia pagina JSP.

<script type="text/javascript">

........var map = new ol.Map ({
...............target: document.getElementById('map'),
...............renderer: 'canvas',
...............layers: layersList,
...............interactions: ol.interaction.defaults().extend([
..............................new ol.interaction.DragZoom()
...............]),
...............controls: ol.control.defaults().extend([
..............................new ol.control.ScaleLine({})
...............]),
...............view: view
.........});

</script>

Fino a qui tutto ok.

Ora, questa mappa ha delle aree che si possono accendere/spegnere sulla base di un ID di area. Che so, l'area del mar mediterraneo con ID 8 la si accende assegnando il valore 8 ad un particolare Array dell'oggetto MAPPA.
Bene, il problema è questo: le aree che voglio accendere sono contenute all'interno di un array che mi viene passato come attributo di sessione. Quindi a inizio pagina faccio:

session.getAttribute("elencoID"); // dove elencoID è un array di N valori numerici

Dentro all'html riesco a visualizzare tutti i suoi valori, tuttavia se inesrisco un

alert("Valore ID "+elencoID.length )

all'interno dei tag <script> </script> non mi viene restituito nulla, perchè mi viene detto che la variabile è
"Unresolved variable or type".

Ovviamente se assegno un valore statico alla mappa (il famoso 8 di prima) l'area corrispondente sulla mappa si accende.

QUINDI: come mai non ho visibilità di questo array letto come attributo di sessione?

PS: la lettura dell'array la faccio sull'evento window.onload inserito all'interno dei tag <script> </script>, che dovrebbe essere il metodo che scatta quando l'intera pagina è stata caricata.