Hallo,
Ich möchte meine Web Applikation erweitern und habe zum Ziel, Daten aus einem RESTful Webservice als Tooltip im meiner JSP Seite beim mouseover Event anzuzeigen. Diesbezüglich habe ich zwei Probleme/Fragen.
Zunächst aber meine Implementierung. Ich habe einen RESTful Webservice deployed, der die folgenden Daten im JSON Format zurückliefert (wahlweise auch in XML):
[XML]
{
"gameList": [{
"awayTeam": "FC Schalke 04",
"gameId": "19705",
"goalsAwayTeam": "2",
"goalsHomeTeam": "2",
"homeTeam": "Hannover 96",
"matchDate": "2012-08-26T17:30:00+02:00"
}, {
"awayTeam": "FC Augsburg",
"gameId": "19712",
"goalsAwayTeam": "1",
"goalsHomeTeam": "3",
"homeTeam": "FC Schalke 04",
"matchDate": "2012-09-01T15:30:00+02:00"
}, {
"awayTeam": "FC Schalke 04",
"gameId": "19727",
"goalsAwayTeam": "2",
"goalsHomeTeam": "0",
"homeTeam": "SpVgg Greuther Fürth",
"matchDate": "2012-09-15T18:30:00+02:00"
}, {
"awayTeam": "FC Bayern München",
"gameId": "19729",
"goalsAwayTeam": "2",
"goalsHomeTeam": "0",
"homeTeam": "FC Schalke 04",
"matchDate": "2012-09-22T15:30:00+02:00"
}, {
"awayTeam": "SC Freiburg",
"gameId": "19848",
"goalsAwayTeam": "3",
"goalsHomeTeam": "1",
"homeTeam": "FC Schalke 04",
"matchDate": "2012-12-15T18:30:00+01:00"
}]
}
[/XML]
Da ich keine Vorkenntnisse mit AJAX habe, habe ich ein Beispiel aus dem Internet genommen und nach meinen Bedürfnissen angepasst. In diesem Beispiel verwende ich den folgenden Java Script Code:
Das Alert Statement in Zeile 19 liefert mir auch das gewünscht Ergebnis (siehe Anhang Alert.png). Soweit alles gut.
Hier nun meine Fragen:
1) Wie parse ich die Collection in JavaScript, um ein Ergebnis zu erhalten, was ungefähr so aussieht:
Mit normalen Java mitteln würde ich Gson nutzen und aus der Response eine ArrayList von Game erzeugen, welche ich dann durchlaufen kann und den String generiere. Wie aber funktioniert das in JavaScript? Gibt es einen einfachen Weg die Collection zu durchlaufen und u.a. String zu erzeugen?
2) Sobald ich den String erzeugt habe, würde ich ihn dann gerne als Tooltip anzeigen lassen, wenn ich mit der Maus über einen Eintrag in meiner JSP Seite fahre? Hat jemand eine Idee, wie ich das umsetzen kann? Auf das mouseover Event zu reagieren habe ich mir ungefähr so vorgestellt:
Aber wie dann die Response als Tooltip anzeigen zu lassen?
Hat jemand eine Idee zu diesen beiden Fragen?
Vielen Dank und Gruß
Stefan
Ich möchte meine Web Applikation erweitern und habe zum Ziel, Daten aus einem RESTful Webservice als Tooltip im meiner JSP Seite beim mouseover Event anzuzeigen. Diesbezüglich habe ich zwei Probleme/Fragen.
Zunächst aber meine Implementierung. Ich habe einen RESTful Webservice deployed, der die folgenden Daten im JSON Format zurückliefert (wahlweise auch in XML):
[XML]
{
"gameList": [{
"awayTeam": "FC Schalke 04",
"gameId": "19705",
"goalsAwayTeam": "2",
"goalsHomeTeam": "2",
"homeTeam": "Hannover 96",
"matchDate": "2012-08-26T17:30:00+02:00"
}, {
"awayTeam": "FC Augsburg",
"gameId": "19712",
"goalsAwayTeam": "1",
"goalsHomeTeam": "3",
"homeTeam": "FC Schalke 04",
"matchDate": "2012-09-01T15:30:00+02:00"
}, {
"awayTeam": "FC Schalke 04",
"gameId": "19727",
"goalsAwayTeam": "2",
"goalsHomeTeam": "0",
"homeTeam": "SpVgg Greuther Fürth",
"matchDate": "2012-09-15T18:30:00+02:00"
}, {
"awayTeam": "FC Bayern München",
"gameId": "19729",
"goalsAwayTeam": "2",
"goalsHomeTeam": "0",
"homeTeam": "FC Schalke 04",
"matchDate": "2012-09-22T15:30:00+02:00"
}, {
"awayTeam": "SC Freiburg",
"gameId": "19848",
"goalsAwayTeam": "3",
"goalsHomeTeam": "1",
"homeTeam": "FC Schalke 04",
"matchDate": "2012-12-15T18:30:00+01:00"
}]
}
[/XML]
Da ich keine Vorkenntnisse mit AJAX habe, habe ich ein Beispiel aus dem Internet genommen und nach meinen Bedürfnissen angepasst. In diesem Beispiel verwende ich den folgenden Java Script Code:
Java:
function createXMLHttpRequest(){
// See [url=http://en.wikipedia.org/wiki/XMLHttpRequest]XMLHttpRequest - Wikipedia, the free encyclopedia[/url]
// Provide the XMLHttpRequest class for IE 5.x-6.x:
if( typeof XMLHttpRequest == "undefined" ) XMLHttpRequest = function() {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
throw new Error( "This browser does not support XMLHttpRequest." )
};
return new XMLHttpRequest();
}
var AJAX = createXMLHttpRequest();
function handler() {
if(AJAX.readyState == 4 && AJAX.status == 200) {
alert(AJAX.responseText);
//var doc = AJAX.responseXML;
//alert(doc);
var json = eval('(' + AJAX.responseText +')');
alert (json.toString());
alert('Success. Result: name => ' + json.id + ',' + 'balance => ' + json.id);
}else if (AJAX.readyState == 4 && AJAX.status != 200) {
alert('Something went wrong...');
}
}
function show(){
var url = "http://localhost:8080/RESTfulExposeBundesliga/rest/bundesliga/games/6";
alert(AJAX.readyState);
AJAX.onreadystatechange = handler;
AJAX.open("GET", url);
AJAX.send("");
};
Das Alert Statement in Zeile 19 liefert mir auch das gewünscht Ergebnis (siehe Anhang Alert.png). Soweit alles gut.
Hier nun meine Fragen:
1) Wie parse ich die Collection in JavaScript, um ein Ergebnis zu erhalten, was ungefähr so aussieht:
FC Schalke 04 - SC Freiburg 3:0
Bayern München - Bor. Dortmund 0:14
Mit normalen Java mitteln würde ich Gson nutzen und aus der Response eine ArrayList von Game erzeugen, welche ich dann durchlaufen kann und den String generiere. Wie aber funktioniert das in JavaScript? Gibt es einen einfachen Weg die Collection zu durchlaufen und u.a. String zu erzeugen?
2) Sobald ich den String erzeugt habe, würde ich ihn dann gerne als Tooltip anzeigen lassen, wenn ich mit der Maus über einen Eintrag in meiner JSP Seite fahre? Hat jemand eine Idee, wie ich das umsetzen kann? Auf das mouseover Event zu reagieren habe ich mir ungefähr so vorgestellt:
HTML:
<a href="#" onmouseover="javascript:show();"> test</a>
Aber wie dann die Response als Tooltip anzeigen zu lassen?
Hat jemand eine Idee zu diesen beiden Fragen?
Vielen Dank und Gruß
Stefan