JSF Datenaustausch JSF zu Javascript

Centai

Mitglied
Ich habe eine JSF-Anwendung, bei welcher auch JavaScript zu Einsatz kommt. Wenn ich Werte von meiner Bean gebraucht habe, dann habe ich sie mir immer so in das JavaScript generieren lassen:

Code:
var jsVar = "#{myBeanController.myValue}";


Jetzt habe ich aber das Problem, dass ich in JavaScript dynamischen Zugriff auf ein Array in meiner Bean brauche. Allerdings kann ich ja nicht per JavaScript durch das Array iterieren, da ja im ersten Schritt der Inhalt Serverseitig generiert wird und erst dann die JS-Funktionen im Browser laufen. Ich habe dazu schon einiges gelesen und bisher folgende Lösungsansätze:

1. JavaScript Code dynamisch generieren aus meiner Bean
--> empfinde ich als unschön

2. JSON ect. sich näher anschauen

Gibt es sonst noch gute Lösungsansätze?
 
A

Andgalf

Gast
Du kannst mit Expression Language auch auf ein Array zugreifen. Müsste in etwa so gehen

Code:
var jsVar = "#{myBeanController.myArray[i]}";
 

Centai

Mitglied
Ist i dann eine JS Variable? Wenn ich folgendes mache:

Code:
var itemCount = "#{myBeanController.itemCount}";
for (var i = 0; i < itemCount; i++) {
var jsVar = "#{myBeanController.myArray[i]}";
// do Something

bekomme ich nichts zurück bzw. ich sehe im Seitenquelltext, dass für itemCount zwar der Zahlenwert generiert wurde, aber jsVar bleibt leer.
 
A

Andgalf

Gast
Bin leider kein JS Profi ... aber für mich sieht das so korrekt aus. In jsVar sollte jetzt eigentlich immer der entsprechende Wert des Arrays (je nach Schleifendurchlauf) stehen.

[EDIT]
Wenn die Gültigkeitsbereiche von Variablen bei JS und Java gleich sind ist jsVar auch nur innerhalb der Schleife bekannt
[/EDIT]
 

Centai

Mitglied
Aber es werden doch erst die JSF-Tags aufgelöst (Server) und dann erst das JavaScript durchlaufen (Client). Woher bekommst die JS-Schleife Zugriff auf das komplette Array der Bean?

Die Variable in der Schleife ist nur lokal, weil der Wert woanders hin weitergegeben wird (innerhalb der Schleife), aber auch bei einer globaleren Deklaration ändert sich nichts...
 
A

Andgalf

Gast
Wie gesagt bin da kein Profi, aber wenn es stimmt was du sagst ... warum machst du dann keine Schleife mit JSF? bzw. warum muss das Array in JS durchlaufen werden?

Eine weitere Alternative wäre, die Werte des Arrays in hidden Fields zu schreiben.
 

nocturne

Bekanntes Mitglied
Code:
var itemCount = "#{myBeanController.itemCount}";
Ist böse, wenn überhaupt dann mit dem XML-Namespace xmlns:fn="http://java.sun.com/jsp/jstl/functions"
Code:
var itemCount = ${fn:length(myBeanController.myArray)};



Am besten ist eine JSON-Lösung.
 
Zuletzt bearbeitet:

Centai

Mitglied
Ich muss eine JavaScript Bibliothek (OpenLayers, welche Daten geographisch visualisiert) mit Daten befüllen. Ich hab keine entsprechende JSF-Bibltiothek oder Komponente gefunden, welche die Funktionalität auch kann...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Javascript, Nodejs, Express Web Tier 0
R JavaScript für Java Enterprise Entwickler Web Tier 1
D JSF Einbindung von Javascript Web Tier 1
J Session Servlet - JavaScript Web Tier 6
M JSP und JavaScript Kommunikation in MVC Pattern Web Tier 1
E Kann man ein Formular in JSP auch per Tastendruck ohne Javascript-Verwendung abschicken? Web Tier 2
B JSP JavaScript SQL Update Web Tier 5
A JSF Rücksicht auf nicht eingeschaltetes JavaScript nehmen Web Tier 2
V Mittels JavaScript Methode aufrufen Web Tier 23
A JSON von JavaScript an Servlet Web Tier 9
K JSP String[] Array nach Javascript Web Tier 4
J Facelets javascript compiler problem Web Tier 3
C JSON-Antwort an Javascript geht nicht Web Tier 7
J JSF JavaScript Probleme zwischen Tomahawk und Tiles!? Web Tier 2
S Per JavaScript Java ansteuern - Welche Technik? Web Tier 2
F selektieren mit javascript Web Tier 9
S Jsp: javascript und javamethode aufrufen Web Tier 17
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
H <form:input > javascript Web Tier 2
M html + jquery(javascript-framework): elegantes und flexibles Formulardesign Web Tier 5
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
F Meinungsumfrage Struts / Javascript Web Tier 3
J Managed bean und javascript kommunikation (JSF 2) Web Tier 2
2 JavaScript Status erkennen? Web Tier 3
Schandro JSP soll dynamische Anzahl an Parametern einer JavaScript-Function erzeugen Web Tier 8
V Eigene JavaScript und JSF (a4j) Web Tier 3
S JavaScript-Funktion aufrufen mit a4j-support?? Web Tier 3
J JavaScript-Code aus Applet ausführen? Web Tier 4
pusteblume JavaScript mit Struts auslesen? Web Tier 3
T Ajax / Javascript Plugin für Eclipse Web Tier 1
G wert für hiddenfield per javascript setzten Web Tier 4
D Tapestry :: JavaScript - Libs import Web Tier 2
B JavaScript und JSF - Diashow Web Tier 9

Ähnliche Java Themen

Neue Themen


Oben