Zum Inhalt springen

Evaluierung von Expression Language in JSP


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe als totaler JNewbie das sample-jsp-portlet aus dem Liferay-Repository etwas erweitert, so dass es mit der Jakarta IO Taglib HTML-Schnipsel von einem anderen Server lädt:

<io:request url="http://123.456.789/feeder/?serverName=tomcat.locahost" encoding="utf-8" />
ich möchte jetzt den Parameter ?serverName=tomcat.locahost dynamisch mit Expression Language setzen, habe dazu in den Direktiven
<%@ page isELIgnored = "false" %>
gesetzt und bekomme mittels einer Liferay-Klasse auch den Servernamen heraus:
String serverName = (String) themeDisplay.getServerName();
Allerdings wird dann die EL bei:
<io:request url="http://123.456.789/feeder/?serverName=${serverName}" encoding="utf-8" />
nicht interpretiert, obwohl der Wert scheinbar korrekt gesetzt ist, wie ich mit
<%= serverName %>
sehen kann. Muss ich außer diesen Direktiven noch mehr beachten um EL zu verwenden?

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<%@ taglib uri="/WEB-INF/tld/taglibs-io.tld" prefix="io" %>


<%@ taglib uri="/WEB-INF/tld/liferay-ui.tld" prefix="ui" %>

<%@ taglib uri="/WEB-INF/tld/liferay-util.tld" prefix="u" %>

<%@ taglib uri="/WEB-INF/tld/liferay-theme.tld" prefix="t" %>


<%@ page import="com.liferay.portal.theme.ThemeDisplay" %>

<%@ page import="java.util.*" %>


<%-- http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html --%>

<%@ page isELIgnored = "false" %>


<portlet:defineObjects/>

Geschrieben

Mir ist nicht ganz klar, wo folgende Zeile herkommt:

String serverName = (String) themeDisplay.getServerName();

Aus einem Controller-Servlet vor der JSP oder aus einem Scriptlet innerhalb der JSP? Wenn zweiteres, dann klinke ich mich hier eh aus, weil ich mit Scriptlets nichts mache und sie auch nicht unterstütze.

Wenn ersteres, dann hast Du nur innerhalb des Controllers eine lokale Variable mit dem Namen.

Mit EL kannst Du auf Objekte und deren Eigenschaften zugreifen, die sich in einem der Scopes (Application, Session, Request, Page) befinden, und auf Request-Parameter (und noch ein paar andere Sachen (Stichwort für die Suche im Java EE Tutorial "implicit objects jsp")).

Wenn also z.B. die Variable "themeDisplay" in einem der Scopes läge, dann könntest Du innerhalb der JSP mit ${themeDisplay.serverName} darauf zugreifen.

Schöne Grüße,

Peter

Geschrieben

Hallo Peter,

wie du schon befürchtet hast, kam die besagte Zeile aus einem Scriptlet innerhalb des JSP, aber mit ${themeDisplay.serverName} wird das ja überflüssig und ich bekomme den gewünschten Wert in den url-Parameter des JSP-Tags.

Jetzt funktioniert es wie es soll.

Vielen Dank!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...