jsp-develop.de presents:

JSP & JavaScript

von shark,  20.10.2001 21:01:43

JavaScript bietet viele Funktionen, die das Entwickeln von Web-Anwendungen vereinfachen. Die Kombination von JSP + JavaScript bringt häufig folgende Fragestellung ans Tageslicht: Wie kann man JSP-Variablen im JavaScript-Code ansprechen?

Die Antwort auf diese Frage ist nicht trivial. JSP-Seiten werden auf dem Server ausgeführt, JavaScript hingegen wird auf dem Client im Browser ausgeführt. Client und Server können Informationen nur über HTTP-Parameter und erzeugte Web-Seiten austauschen. Es besteht aufgrund dieser Restriktionen keine Möglichkeit JSP-Methoden und Attribute direkt im JavaScript Code anzusprechen!

Die einzige Möglichkeit in diesem Kontext ist: Daten in die Web-Seite zu schreiben und über JavaScript zuzugreifen. Für diesen Fall verwendet man die "<%= %>" Tags, um die Daten in die Web-Seite zu schreiben und um auf dem Client die Daten mit JavaScript zu verarbeiten.

Beispiel einer JSP-Seite die mit JavaScript angereichert ist:

<%@page language="java" contentType="text/html"%>
<html>
<head>
<%
  // JSP-Variable definieren und Text zuweisen
  String strText = "Some Text";
%>

<script language="javascript">

<!-- JavaScript Code fuer Browser, die kein Scripting
    unterstuetzen ausblenden

// JSP-Variable der JavaScript-Variablen zuweisen
var jsText = "<%=strText%>";

// JavaScript Funktion zum Anzeigen des Textes
function showText()
{
  alert("Text: " + jsText);
}

// Ende der JavaScript Sektion -->
</script>
/head>
<body onload = "showText()">
</body>
</html>

Verwendet man JavaScript in JSP- bzw. HTML-Seiten, sollte man beachten, das Benutzer im Browser die Ausführung von JavaScript unterbinden können. Man sollte deshalb in seiner JSP-Seite prüfen, ob der Browser JavaScript unterstützt und wenn nicht, das Problem auf dem Server lösen.

Alternativ kann man durch HTML-Kommentare auch den JavaScript Code einfach ausblenden. Für Funktionen, die nicht unbedingt benötigt werden, macht das durchaus Sinn. Um den JavaScript Code auszublenden umschliesst man diesen nach dem <script> Tag mit einem HTML-Kommentar (siehe Beispiel). Der Browser ignoriert im Falle der Unterstützung von JavaScript den HTML-Kommentar nach dem <script> Tag und führt den JavaScript Code aus. Wird JavaScript nicht unterstützt, ignoriert der Browser den mit dem HTML-Kommentar umschlossenen JavaScript Code.
URL dieses Beitrags:
http://www.jsp-develop.de/forumbeitrag/view/271/