IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Portails Java Discussion :

jsp et portlet


Sujet :

Portails Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut jsp et portlet
    Svp quelq'un peut m'aider à trouver comment invoquer une portlet à partir d'une page jsp cad exécuter portlet.java à partir d'un .JSP
    merci de bien vouloir m'aider

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Euh juste une question à te poser: pour déployer une portlet, il faudrait pas un portail ?

    De plus, une portlet n'est-elle pas sensée utiliser (et réciproquement) des morceaux de codes jsp ?

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 79
    Points
    79
    Par défaut
    A mon avis pour déployer une portlet il faux absolument un portail!

  4. #4
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Disons qu'il faut un portlet container.
    Comme pour les servlets il faut un serveur de servlet, et bien pour les portlet il faut un serveur de portlet.
    On appelle ça un portlet container.
    JBoss en est un par exemple.
    Et la plupart des portails (liferay, jboss plateforme, exoplateforme...) ont un portlet container embarqué.

    Si je me trompe corrigez moi.

    Après, pour le JSP et les portlets, tu peux dans un portlet appeler un jsp qui génére le HTML de ta portlet.
    Et tu peux en thèorie en JSP rediriger vers une url ou appeler une méthode de ta portlet.
    C'est le mieux que j'ai trouvé pour ça (en anglais):
    http://docs.jboss.org/jbportal/v2.4/...s.html#d0e1934
    Partie 5.2.2.5. JSP files and the portlet taglib

    Mais bon je bloque sur un truc: j'essaye d'appeler une méthode de ma portlet en récupérant via un javabean une liste de valeurs à passer en paramétre.
    En fait, un lien par paramètre.

    Je vais copier coller mon code jsp ce sera plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <%@ page 
    	import="java.sql.*"
    	language="java"
    	contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"
    %>
    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
    <jsp:useBean id="myBean" class="intermed.questionnaire.bean.interfacesBDD.createur.CreateurBDDBean" scope="session" />
    <%
    	myBean.connect("jdbc:mysql://localhost/intermed_survey" , "root" , "antoine");
    	ResultSet _surveys = myBean.getMySurveys(1);
    %>
    	<table id="surveys_list">
    		<caption>Liste de vos questionnaires :</caption>
     
    		<%
    			while(_surveys.next())
    			{
    				%>
    				<tr>
    				<td>
    					<a href="<portlet:actionURL><portlet:param name='id_survey' value='
    				<%
    				 	out.print(_surveys.getInt("id_survey")); 
    				%>
    					'></portlet:param></portlet:actionURL>">
    				<% 
    					out.print(_surveys.getString("title")); 
    				%>
    					</a>	
    				</td>
    				</tr>
    				<% 
    			}
    		%>
     
    	</table>
    Et le code de ma portlet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    package intermed.survey.creator;
     
     
    import java.io.IOException;
    import javax.portlet.GenericPortlet;
    import javax.portlet.PortletException;
    import javax.portlet.PortletRequestDispatcher;
    import javax.portlet.RenderRequest;
    import javax.portlet.RenderResponse;
     
     
     
    public class SurveyCreator extends GenericPortlet
    {
     
    	protected void doView(RenderRequest rRequest, RenderResponse rResponse) throws IOException, PortletException
    	{
    		rResponse.setContentType("text/html");
    		//en théorie, il y a toujours un et un seul paramétre de défini. Si ce n'est pas le cas, page d'erreur
    		if(rRequest.getParameter("_id_user")!=null)
    		{
    			PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/surveys.jsp?"+rRequest.getParameter("_id_user")));
    			prd.include(rRequest, rResponse);
    		}
    		else if(rRequest.getParameter("_id_survey")!=null)
    		{
    			PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/survey_content.jsp?"+rRequest.getParameter("_id_survey")));
    			prd.include(rRequest, rResponse);
    		}
    		else
    		{
    			//PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/error.jsp"));
    			PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher(rResponse.encodeURL("/WEB-INF/jsp/surveys.jsp?"+rRequest.getParameter("_id_user")));
    			prd.include(rRequest, rResponse);
    		}
    	}
    }
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  5. #5
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Bah j'avais juste oublié de définir la méthode processAction dans mon portlet.
    Le code de cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public void processAction(ActionRequest aRequest, ActionResponse aResponse) throws PortletException, IOException, UnavailableException
    	{
    		String sYourname = (String) aRequest.getParameter("id_survey");
    		aResponse.setRenderParameter("_id_survey", sYourname);
    	}
    Au passage, http://www.onjava.com/pub/a/onjava/2...-2.html?page=1
    Pas mal à lire.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  6. #6
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    Nouveau problème, si quelqu'un peut m'aider.
    Voilà mon code jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <%@ page 
    	import="java.sql.*"
    	import="intermed.survey.creator.*"
    	language="java"
    	contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"
    %>
    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
    <jsp:useBean id="myBean" class="intermed.questionnaire.bean.interfacesBDD.createur.CreateurBDDBean" scope="session" />
    <%
    	myBean.connect("jdbc:mysql://localhost/intermed_survey" , "root" , "antoine");
    	ResultSet _surveys = myBean.getMySurveys(1);
    	System.out.println(SurveyCreator.VIEW_SURVEY_CONTENT);
    %>
    	<table id="surveys_list">
    		<caption>Liste de vos questionnaires :</caption>
     
    		<%
    			while(_surveys.next())
    			{
    				%>
    				<tr>
    				<td>
    					<a href="<portlet:actionURL portletMode='view'><portlet:param name='id_survey' value='
    				<%=
    				 	_surveys.getInt("id_survey") 
    				%>
    					'></portlet:param>
    					<portlet:param name='mode' value='
    					<%
    					SurveyCreator.VIEW_SURVEY_CONTENT
    					%>
    					'></portlet:param>
    					</portlet:actionURL>">
    				<%= 
    					_surveys.getString("title") 
    				%>
    					</a>	
    				</td>
    				</tr>
    				<% 
    			}
    		myBean.closeConnection();
    		%>
     
    	</table>
    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(SurveyCreator.VIEW_SURVEY_CONTENT);
    me renvoie bien en sortie la valeur de SurveyCreator.VIEW_SURVEY_CONTENT
    Par contre la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <portlet:param name='mode' value='
    					<%
    					SurveyCreator.VIEW_SURVEY_CONTENT
    					%>
    					'></portlet:param>
    ne me crée pas le bon html.
    Au lieu d'avoir <portlet:param name='mode' value='1'></portlet:param>
    J'ai <portlet:param name='mode' value='
    <%
    SurveyCreator.VIEW_SURVEY_CONTENT
    %>
    '></portlet:param>
    tel quel
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

  7. #7
    Membre averti
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2007
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 393
    Points : 343
    Points
    343
    Par défaut
    C'est bon. Solution trouvée.
    En fait, il ne faut pas de saut de ligne dans la balise <portlet:param et surtout, il ne faut sortir que des Strings du java vers le jsp.

    Voilà le code corrigé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <%@ page 
    	import="java.sql.*"
    	import="intermed.survey.creator.*"
    	language="java"
    	contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"
    %>
    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
    <jsp:useBean id="myBean" class="intermed.questionnaire.bean.interfacesBDD.createur.CreateurBDDBean" scope="session" />
    <portlet:defineObjects/>
    <%
    	myBean.connect("jdbc:mysql://localhost/intermed_survey" , "root" , "antoine");
    	ResultSet _surveys = myBean.getMySurveys(1);
    	System.out.println(SurveyCreator.VIEW_SURVEY_CONTENT);
    	String n= ""+SurveyCreator.VIEW_SURVEY_CONTENT;
    %>
    	<table id="surveys_list">
    		<caption>Liste de vos questionnaires :</caption>
     
    		<%
    			while(_surveys.next())
    			{
    				%>
    				<tr>
    				<td>
    					<a href="<portlet:actionURL portletMode='view'>
    					<portlet:param name='id_survey' value='<%=new Integer(_surveys.getInt("id_survey")).toString()%>'/>
     					<portlet:param name='mode' value='<%=n%>'/>
    					</portlet:actionURL>">
    				<%= 
    					_surveys.getString("title") 
    				%>
    					</a>	
    				</td>
    				</tr>
    				<% 
    			}
    		myBean.closeConnection();
    		%>
     
    	</table>
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soupçon de réseaux sociaux.

Discussions similaires

  1. [Portlet] portlet sans jsp ?
    Par criquety dans le forum Portails
    Réponses: 2
    Dernier message: 08/01/2008, 16h35
  2. [Spring Portlets] select paramétré+affichage jsp
    Par myriam818 dans le forum Spring Web
    Réponses: 0
    Dernier message: 06/12/2007, 17h42
  3. [Portlet] Transformer une webapps (jsp) en portlet?
    Par osmoze dans le forum Portails
    Réponses: 7
    Dernier message: 12/01/2007, 08h10
  4. Portlet et JSP
    Par qwiskas dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/12/2006, 12h41
  5. Réponses: 2
    Dernier message: 18/05/2006, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo