掲示板
[NEWBIE] Button um andere JSP aufzurufen
15年前 に Alex B によって更新されました。
[NEWBIE] Button um andere JSP aufzurufen
New Member 投稿: 9 参加年月日: 08/10/19 最新の投稿
Hallo zusammen,
Ich versuche schon seit längerem in der view.jsp einen Button einzubauen, der die view.jsp gegen eine andere JSP-Seite austauscht.
- Geht das überhaupt bei Portlets, die mit Netbeans erstellt wurden?
- In jedem von Liferay mitgelieferten portlet gibt es eine "struts_action". Hat das damit zutun, das es nicht geht?
Bitte helft mir
Ich versuche schon seit längerem in der view.jsp einen Button einzubauen, der die view.jsp gegen eine andere JSP-Seite austauscht.
- Geht das überhaupt bei Portlets, die mit Netbeans erstellt wurden?
- In jedem von Liferay mitgelieferten portlet gibt es eine "struts_action". Hat das damit zutun, das es nicht geht?
Bitte helft mir
15年前 に Tobias Amon によって更新されました。
RE: [NEWBIE] Button um andere JSP aufzurufen
Liferay Master 投稿: 546 参加年月日: 07/08/08 最新の投稿
Hallo,
versuchst du allgemein ein JSP-portlet zu erstellen, oder versuchst du gezielt ein Liferay-portlet zu verändern.
Der Unterschied ist:
- Liferay portlets benutzen Struts als Frameworks -> benötugt Struts-kenntnisse
- "Standard JSR 168" Portlets funktionieren auch ohne... die Navigation ist dann "anders"
Gruss
Tobias
versuchst du allgemein ein JSP-portlet zu erstellen, oder versuchst du gezielt ein Liferay-portlet zu verändern.
Der Unterschied ist:
- Liferay portlets benutzen Struts als Frameworks -> benötugt Struts-kenntnisse
- "Standard JSR 168" Portlets funktionieren auch ohne... die Navigation ist dann "anders"
Gruss
Tobias
15年前 に Alex B によって更新されました。
RE: [NEWBIE] Button um andere JSP aufzurufen
New Member 投稿: 9 参加年月日: 08/10/19 最新の投稿
Erstmal Danke Tobias, das Du mir helfen willst.
Das ist eine Standard JSR 168 bzw. Portlet-Version 2.0 (Netbeans-Plugin). Ich schreibe das extra, weil die xmlns-includes in der web.xml und portlet.xml doch etwas anders sind:
web.xml - aus dem Plugin_SDK
web.xml - aus dem Netbeans Portlet Pack
Ich will mit Hilfe von Netbeans ein Portlet bauen, das ich einfach über den "...\liferay \ deploy"-Ordner einbinden lasse.
Mein Vorgehen:
1. Mit Hilfe des Portal_Pack für Netbeans ein Portlet erzeugt
2. Die 3 xml-Dateien "liferay-display.xml", "liferay-portlet.xml", "liferay-plugin-package" erstellt und diese mit mit den aus dem Plugin_SDK-Werten gefüllt und angepasst (nichts extra hinzugefügt)
3. eine Basic_Settings.jsp im WEB-INF\jsp-Ordner erstellt, auf die die "view.jsp" verweisen soll.
Hier kann die "Weiterleitung" noch ohne Übergabe von Variablen erfolgen.
Wäre aber auch froh, wenn Du mir auch die mit Weiterleitung der Daten erklären kannst.
Das ist eine Standard JSR 168 bzw. Portlet-Version 2.0 (Netbeans-Plugin). Ich schreibe das extra, weil die xmlns-includes in der web.xml und portlet.xml doch etwas anders sind:
web.xml - aus dem Plugin_SDK
<!--?xml version="1.0" encoding="UTF-8"?-->
<web-app>
</web-app>
web.xml - aus dem Netbeans Portlet Pack
<!--?xml version="1.0" encoding="UTF-8"?-->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
...
</web-app>
Ich will mit Hilfe von Netbeans ein Portlet bauen, das ich einfach über den "...\liferay \ deploy"-Ordner einbinden lasse.
Mein Vorgehen:
1. Mit Hilfe des Portal_Pack für Netbeans ein Portlet erzeugt
2. Die 3 xml-Dateien "liferay-display.xml", "liferay-portlet.xml", "liferay-plugin-package" erstellt und diese mit mit den aus dem Plugin_SDK-Werten gefüllt und angepasst (nichts extra hinzugefügt)
3. eine Basic_Settings.jsp im WEB-INF\jsp-Ordner erstellt, auf die die "view.jsp" verweisen soll.
Hier kann die "Weiterleitung" noch ohne Übergabe von Variablen erfolgen.
Wäre aber auch froh, wenn Du mir auch die mit Weiterleitung der Daten erklären kannst.
15年前 に Tobias Amon によって更新されました。
RE: [NEWBIE] Button um andere JSP aufzurufen
Liferay Master 投稿: 546 参加年月日: 07/08/08 最新の投稿
Hallo,
also bei Portlets läuft das etwas anders.
In deiner Portletklasse fügst du eine methode hinzu:
Dann brauchst du in deiner doView-methode einen Aufruf dieser methode und eine Abfrage, was anghezeigt werden soll:
Zuletzt musst du dir in deiner view.jsp noch den link zusammenbauen:
Das ist es dann auch schon.
Gruss Tobias
also bei Portlets läuft das etwas anders.
In deiner Portletklasse fügst du eine methode hinzu:
protected void include(String path, RenderRequest req, RenderResponse res)
throws IOException, PortletException {
PortletRequestDispatcher prd =
getPortletContext().getRequestDispatcher(path);
if (prd == null) {
_log.error(path + " is not a valid include");
}
else {
prd.include(req, res);
}
}
Dann brauchst du in deiner doView-methode einen Aufruf dieser methode und eine Abfrage, was anghezeigt werden soll:
String jspPage = req.getParameter("jspPage");
if (jspPage != null) {
include(jspPage, req, res);
}
else {
super.doDispatch(req, res);
}
Zuletzt musst du dir in deiner view.jsp noch den link zusammenbauen:
<a href="<portlet:renderUrl><portlet:param name=" jspPage" value="Basic_Settings.jsp"></a>" >LINK
Das ist es dann auch schon.
Gruss Tobias
15年前 に Alex B によって更新されました。
RE: [NEWBIE] Button um andere JSP aufzurufen
New Member 投稿: 9 参加年月日: 08/10/19 最新の投稿
Vielen Dank Tobias Anon,
Du hast mir damit richtig gut weitergeholfen!
Allerdings gingen gewisse Sachen nicht.
Ich musste allerdings ein paar Kleinigkeiten verändern, was ich hier nochmal für alle die nicht mit der EXT arbeiten anbieten will.
in der include-Methode ging folgendes nicht:
das hab ich ersetzt duch
Portletklasse (der Code in der else-Schleife ist von dem portal_pack für Netbeans generiert worden)
"Das ist dann auch schon alles" <-- Der Spruch ist gut. Ich sitz da schon eionen ganzen Monat dran und wusste nicht wie ich das machen sollte.
Beste Grüße
Alex
Du hast mir damit richtig gut weitergeholfen!
Allerdings gingen gewisse Sachen nicht.
Ich musste allerdings ein paar Kleinigkeiten verändern, was ich hier nochmal für alle die nicht mit der EXT arbeiten anbieten will.
in der include-Methode ging folgendes nicht:
_log.error(path + " is not a valid include");
das hab ich ersetzt duch
System.out.println(path + " is not a valid include");
Portletklasse (der Code in der else-Schleife ist von dem portal_pack für Netbeans generiert worden)
public void [b]doView[/b](RenderRequest request, RenderResponse response)
[color=#0021FA]throws[/color] PortletException, IOException {
String jspPage = request.getParameter("jspPage");
[color=#0021FA]if[/color] (jspPage != [color=#0021FA]null[/color]) {
include(jspPage, request, response);
} [color=#0021FA]else[/color] {
[color=#00B617]//super.doDispatch(request, response);[/color] [color=#FF0000]geht nicht. weisst Du warum?[/color]
response.setContentType("text/html");
PortletRequestDispatcher dispatcher =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/view.jsp");
dispatcher.include(request, response);
}
}
"Das ist dann auch schon alles" <-- Der Spruch ist gut. Ich sitz da schon eionen ganzen Monat dran und wusste nicht wie ich das machen sollte.
Beste Grüße
Alex
15年前 に Tobias Amon によって更新されました。
RE: [NEWBIE] Button um andere JSP aufzurufen
Liferay Master 投稿: 546 参加年月日: 07/08/08 最新の投稿
Hallo,
schön, dass ich helfen kann.
OK, der logger ist log4j, den muss man sich erst noch "erstellen"... Sysout ist nicht so das richtige Instrument für ein produktives Portlet.
Bei "super.doDispatch" kommt es darauf an, von welcher "Portletklasse" dein Portlet ableitet. Ich verwende bspw. javax.portlet.GenericPortlet.
Gruss Tobias Amon
schön, dass ich helfen kann.
OK, der logger ist log4j, den muss man sich erst noch "erstellen"... Sysout ist nicht so das richtige Instrument für ein produktives Portlet.
Bei "super.doDispatch" kommt es darauf an, von welcher "Portletklasse" dein Portlet ableitet. Ich verwende bspw. javax.portlet.GenericPortlet.
Gruss Tobias Amon
14年前 に Kolja Köster によって更新されました。
RE: [NEWBIE] Button um andere JSP aufzurufen
Regular Member 投稿: 164 参加年月日: 09/05/11 最新の投稿Tobias Amon:
<a href="<portlet:renderUrl><portlet:param name=" jspPage" value="Basic_Settings.jsp"></a>" >LINK
Wenn ich das ein mein view.jsp schreibe, ist mein Portlet nicht mehr anzeigbar und es gibt eine million Java Errors in der Tomcat console. Hast Du zufällige irgendein HowTo, daß mal erklärt, wie die Kommunikation zwischen JSP und Java.class Datei in Liferay funktioniert? Ich finde nur Codeschnippsle und haufenweise Dinge, die ich in irgendwelche XML Dateien schreiben soll, die bei mir aber anders heißen, bzw. sich nicht im geringsten an die Verzeichnisstruktur halten, die entsteht, wenn man ein minimales Portlet mit dem ant build erstellt.
Gruß
Kolja
14年前 に Kolja Köster によって更新されました。
RE: [NEWBIE] Button um andere JSP aufzurufen
Regular Member 投稿: 164 参加年月日: 09/05/11 最新の投稿
I schrieb es auch schon in einem anderen Thread, aber der Vollständigkeit halber:
Gibt es eine menschenlesbare Dokumentation, wie man ein einfaches Portlet mit der Portlet SDK baut? Alle Beispiele, die ich bisher gefunden habe, nehmen keinen Bezug auf die SDK (die ja aber empfohlen wird sie zur Entwicklung von Portlets zu benutzen), reden von XML-Files, die andere Namen haben, wie die in dem autogenerierten Eclipse Projekt oder die Pfandangeben beinhalten, die einem beim Deployen des Portlets um die Ohren gehauen werden. Alles was ich will, ist ein kleiner Einstieg, wie ich aus dem angezeigten JSP mit der Java .class Datei im Hintergrund rede, und eine Antwort zurückbekommen, aber alle kleinen Beispielfetzen, die ich irgendwo auftreibe, widersprechen sich endweder gegenseitig oder der Struktur im SDK.
Ich bitte um Hilfe, der Einarbeitungaufwand von Liferay ist so, jenseits von allem, was vertretbar ist.
Gruß
Kolja
Gibt es eine menschenlesbare Dokumentation, wie man ein einfaches Portlet mit der Portlet SDK baut? Alle Beispiele, die ich bisher gefunden habe, nehmen keinen Bezug auf die SDK (die ja aber empfohlen wird sie zur Entwicklung von Portlets zu benutzen), reden von XML-Files, die andere Namen haben, wie die in dem autogenerierten Eclipse Projekt oder die Pfandangeben beinhalten, die einem beim Deployen des Portlets um die Ohren gehauen werden. Alles was ich will, ist ein kleiner Einstieg, wie ich aus dem angezeigten JSP mit der Java .class Datei im Hintergrund rede, und eine Antwort zurückbekommen, aber alle kleinen Beispielfetzen, die ich irgendwo auftreibe, widersprechen sich endweder gegenseitig oder der Struktur im SDK.
Ich bitte um Hilfe, der Einarbeitungaufwand von Liferay ist so, jenseits von allem, was vertretbar ist.
Gruß
Kolja