halimat Geschrieben 8. März 2010 Geschrieben 8. März 2010 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/> Zitieren
kingofbrain Geschrieben 8. März 2010 Geschrieben 8. März 2010 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 Zitieren
halimat Geschrieben 8. März 2010 Autor Geschrieben 8. März 2010 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! Zitieren
Empfohlene Beiträge
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.