Liferay Portlet

G

Gongo82

Gast
Hallo Leute ,

bin Neuling in der Portlet Welt und versuche ein kleines Portlet zu programmieren....wäre super, wenn mir jemand helfen könnte, ich bekomme es einfach nicht zum laufen...

Ich arbeite mit Eclipse und als Portalserver verwende ich Liferay(Tomcat)...

ich wollte ein Portlet erstellen das ein einfaches Textfeld besitzt und einen Ok Button...dieses Textfeld soll ausgelesen werden und das was man in das Textfeld reingeschrieben hat, soll auf einer zweiten Jsp ausgegeben werden...Wenn ich das Portlet laufen lasse, wird es nicht angezeigt( .....ist temporär nicht erreichbar)....

Hier die Auszüge aus meinem Portlet...

die jsp´s befinden sich im WEB-INF Verzeichnis
view.jsp
HTML:
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />


<br>Hier können Sie Musik-Künstler abfragen...

  <html>
  <body>
  
  <form name= "Formular" action= "<portlet:actionURL>
<portlet:param name ="jspPage" value = "view.jsp"/>
</portlet:actionURL>" method = "POST">
  
  <table>
       <tr>
       
         <td>Name:</td>
         <td><input type="text" name="name" size="20"></td>
         <td><input type= "submit" value="ok"/></td>
         
       </tr>
      
     </table>
    </form>
  </body>
</html>

die nun folgende jsp soll den Wert ausgeben der in dem Textfeld eingegeben wurde: zweiteSeite.jsp

HTML:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Zweite Seite</title>
</head>
<body>

<% 

String nameAuslesen=request.getParameter("name");

%>

Sie haben folgendes eingegeben: <%= nameAuslesen %>


</body>
</html>

und das ist mein Controller
Java:
 @Override
    public final void processAction(final ActionRequest request,
            final ActionResponse response) throws PortletException, IOException 
            {
                
    String jspPage = request.getParameter("jspPage");
        
        if (jspPage.equals("view.jsp"))
        { 
            
        String name = request.getParameter("name");
        response.setRenderParameter(name, name);
        
        response.setRenderParameter(jspPage, "zweiteseite.jsp");
        }
        else if(jspPage.equals("zweiteseite.jsp")) {
            
            //hier möchte ich wieder zurück zur startpage
            
            response.setRenderParameter(jspPage, "view.jsp");
        }
        }
 
        
        protected void doView(RenderRequest request, RenderResponse response) 
            throws PortletException, IOException {
        
        PortletContext context = getPortletContext();
        PortletRequestDispatcher dispatcher 
        = context.getRequestDispatcher( "/view.jsp" );
        dispatcher.include( request, response );
        }
}

Auszug aus der web.xml
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>MusicFinderService-portlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <jsp-config>
  	<taglib>
  		<taglib-uri>http://java.sun.com/portlet_2_0</taglib-uri>
  		<taglib-location>
  			/WEB-INF/tld/liferay-portlet.tld
  		</taglib-location>
  	</taglib>
  </jsp-config>
</web-app>

Auszug aus der portlet.xml
HTML:
<?xml version="1.0"?>

<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0">
	<portlet>
		<portlet-name>MusicFinderService</portlet-name>
		<display-name>MusicFinderService</display-name>
		<portlet-class>Test</portlet-class>
		<init-param>
			<name>view-template</name>
			<value>view.jsp</value>
		</init-param>
		<expiration-cache>0</expiration-cache>
		<supports>
			<mime-type>text/html</mime-type>
		</supports>
		<portlet-info>
			<title>MusicFinderService</title>
			<short-title>MusicFinderService</short-title>
			<keywords>MusicFinderService</keywords>
		</portlet-info>
		<security-role-ref>
			<role-name>administrator</role-name>
		</security-role-ref>
		<security-role-ref>
			<role-name>guest</role-name>
		</security-role-ref>
		<security-role-ref>
			<role-name>power-user</role-name>
		</security-role-ref>
		<security-role-ref>
			<role-name>user</role-name>
		</security-role-ref>
	</portlet>
Auszug aus der liferay-portlet.xml
HTML:
<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd">

<liferay-portlet-app>
	<portlet>
		<portlet-name>MusicFinderService</portlet-name>
		<icon>/icon.png</icon>
		<instanceable>false</instanceable>
		<header-portlet-css>/css/main.css</header-portlet-css>
		<footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
		<css-class-wrapper>MusicFinderService-portlet</css-class-wrapper>
	</portlet>
<role-mapper>
		<role-name>administrator</role-name>
		<role-link>Administrator</role-link>
	</role-mapper>
	<role-mapper>
		<role-name>guest</role-name>
		<role-link>Guest</role-link>
	</role-mapper>
	<role-mapper>
		<role-name>power-user</role-name>
		<role-link>Power User</role-link>
	</role-mapper>
	<role-mapper>
		<role-name>user</role-name>
		<role-link>User</role-link>
	</role-mapper>
</liferay-portlet-app>

Auszug aus der liferay-display.xml
HTML:
<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.1.0//EN" "http://www.liferay.com/dtd/liferay-display_6_1_0.dtd">

<display>
	<category name="category.sample">
		<portlet id="MusicFinderService" />
		<portlet id="webserviceportlet"></portlet>
	</category>
</display>
 
Zuletzt bearbeitet von einem Moderator:

execute

Mitglied
huhu,

eine Frage, wird denn wenigstens ein "Hello World" angezeigt?
Das sollte meiner Meinung zuerst mal laufen und dann, jeden Tag ein bisschen mehr. :)
 
G

Gelöschtes Mitglied 23978

Gast
Hallo Gongo82,

mit Hilfe der Liferay IDE (verfügbar über den Eclipse Marketplace) ist die Grundfunkionalität (z.B. ein HelloWorld) schon einmal ziemlich leicht zu erreichen. Durch das Anlegen eines Portlets werden dir alle Konfigurationsdateien, eine Test-JSP und ein Controller in deinem Projekt angelegt.
Anschließend ein Formular hinzuzufügen ist das kleinere Problem.

Happy coding
 
G

Gelöschtes Mitglied 23978

Gast
Hallo PollerJava,

auf der Downloadseite von Liferay gibt es verschiedene Bundlevarianten - unter anderem auch mit dem Tomcat. Es ist grundsätzlich auch zu bevorzugen den mitgelieferten Tomcat zu nutzen, wobei du theoretisch auch eine andere Version einsetzen könntest.
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Ähnliche Java Themen

Neue Themen


Oben