Javascript Variable einer Java Variable zuweisen
fidi
- javascript
Ich möchte eine Javascript-Funktion aufrufen bei der der übergebene Wert einer Java-Variable zugewiesen wird und anschließend oder auch sofort über "setProperty" einer benutzten Bean als Variable übergeben wird.
Bsp wie es nicht geht:
function setLocationID(ID){
<jsp:setProperty name="viewBean" property="locationNumber" param=ID />
}
Geht nicht, weil wohl der übergebene Javascript Parameter im Focus des JSP-Tags nicht bekannt ist.
Hat da jemand eine Idee???
Moin!
Bsp wie es nicht geht:
function setLocationID(ID){
<jsp:setProperty name="viewBean" property="locationNumber" param=ID />
}
Kann so nicht gehen. Das Javascript wird erst im Browser abgearbeitet. Da ist Deine JSP- Seite schon "lange" vom Server fertig bearbeitet.
Du müsstest also die Seite oder das gesamte Objekt neu laden und die Variable im GET-String mit übergeben, also wieder serverseitig auswerten.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Das ist mir schon klar...war nur zur Beschreibung meines Problems hilfreich ;-)
Eigentlich sieht das Problem so aus, dass ich die Javascript-methode aus einem Flash-Film aufrufen und einen Paramter übergeben möchte, der dann wiederum in eine JavaBean geschrieben werden soll.
;-))
Moin!
Bsp wie es nicht geht:
function setLocationID(ID){
<jsp:setProperty name="viewBean" property="locationNumber" param=ID />
}Kann so nicht gehen. Das Javascript wird erst im Browser abgearbeitet. Da ist Deine JSP- Seite schon "lange" vom Server fertig bearbeitet.
Du müsstest also die Seite oder das gesamte Objekt neu laden und die Variable im GET-String mit übergeben, also wieder serverseitig auswerten.MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Vielen Dank für die Hilfe...habs rausbekommen!
Hier für die es interessiert das Javascript auf der JSP-Seite:
<script language="JavaScript" type="text/JavaScript">
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
// sends a String ( or XML-Message ) to controllerServlet, async=true
function sendRequest(location)
{
//xmlhttp.open('POST', 'controllerServlet',true);
xmlhttp.open('POST', '../controllerServlet?action=setLocation&location='+location,true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
handleXmlResponse( xmlhttp.responseXml );
//response = XML-Document
//handleXmlResponse( xmlhttp.responseText ); //response = Text
}
}
xmlhttp.setRequestHeader('Man', 'POST');
xmlhttp.setRequestHeader('MessageType', 'CALL');
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.setRequestHeader('pragma','no-cache');
xmlhttp.setRequestHeader('cache-control','no-store, must-revalidate, private');
xmlhttp.setRequestHeader("Content-length", location.length);
xmlhttp.send(null);
}
function handleXmlResponse( responseXmlDoc )
{
// hier passiert nix
}
</script>
Das Servlet verändert dann dementsrechend die Bean.