Hi,

L'utilisation d'un ActionURL ou d'un RenderURL dépend de votre application, Il faut tenir compte de la manière dont les méthodes render et process sont appelées.

Plus d'info: page 25 de la spec.

KT.
Christophe Dumonet a écrit :
Bonjour,
et merci pour votre réponse.
J'ai solutionné mon problème de la manière suivante :
1) MonPortletJSR168 ----> Appelle mon jsp formulaire form.jsp depuis doView() ( avec un PortletRequestDispatcher ) 2) Ce form.jsp utilise <form action='<portlet:actionURL/>' method=post> dans le formulaire, la méthode processAction du formulaire sera donc appelé 3) Dans la méthode processAction du portlet, je récupère mes variables via : actionRequest.getParameter("mavariabledeformulaire"), et je renseigne actionResponse via actionResponse.setRenderParameter("valeurvariable",mavariabledeformulaire); 4)pour finir dans le doView du portlet, je regarde si la variable est renseigné, si oui, j'appelle un nouveau jsp qui traite mon formulaire, en récupérant les arguments via
<%= renderRequest.getParameter("mavariabledeformulaire") %>


Après je me demande si je respecte bien les règles de l'art pour faire la communication PORTLET--> JSP1-->JSP2 ???

Merci à vous,
Cordialement,

----------------------------------------------------
Christophe Dumonet
Centre de Ressources Informatiques
Institut Francais de Mecanique Avancee (IFMA)
Campus des Cezeaux
BP 265
63175 AUBIERE Cedex
Tel : +33 - 4.73.28.80.64
Fax : +33 - 4.73.28.81.00
Mail : [EMAIL PROTECTED]
----------------------------------------------------





Khaled TLILI a écrit :
Hi,

Je pense que l' erreur vient de cette ligne:

<% PortletURL url = renderResponse.createActionURL();%>

l'url générée est une actionURL et non un renderURL. Dans ce cas, les paramètres ne se trouvent pas dans l'objet renderRequest mais uniquement dans l'objet actionRequest.

Pour plus de détails, veuillez vous référez à la page 43 de la spécification portlet ( http://jcp.org/en/jsr/detail?id=168 ).

Cordialement.
KT.

Christophe Dumonet a écrit :
Bonjour,
Je vous remercie pour votre réponse concernant ma question, mais pas moyen !

Concrètement, je voudrais faire la chose suivante : monportlet affiche un formulaireJSP et traite la réponse dans un JSP, vraiment l'architecture MVC quoi :-)
-------------------------------------------------------------
1) MonPortletJSR168 ----> Appelle un jsp form.jsp depuis doView()

protected void doView (RenderRequest request, RenderResponse response) throws PortletException, IOException {
   response.setContentType("text/html");

PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/form.jsp");
               rd.include(request, response);
   }
-------------------------------------------------------------
2) mon JSP form.jsp s'affiche directement quand la portlet se lance :
c'est un JSP tout bête qui affiche un formulaire tout bête, j'ai fait comme vous m'avez dit : avec <portlet:defineObjects/> et form action='<%= url.toString()

<[EMAIL PROTECTED] uri="http://java.sun.com/portlet"; prefix="portlet"%>

<portlet:defineObjects />

<% PortletURL url = renderResponse.createActionURL();%>

<form action='<%= url.toString() %>' method=post>
Bonjour, Quelles sont vos connaissances de HTML ?
<input type="radio" name="choice" value="1" checked>faibles
<input type="radio" name="choice" value="2">moyennes
<input type="radio" name="choice" value="3">bonnes
<input type="submit" value="Voir le résultat!">
</form>
-------------------------------------------------------------

3) et là dans la méthode render() je fais :
public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException {
if (renderRequest.getParameter("choice") != null)
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/view.jsp");
               rd.include(request, response);
   }

4) mon view.jsp , il n'est pas appelé, il ne s'affiche pas , j'ai un beau message d'erreur, mais j'avais mis dedans
<[EMAIL PROTECTED] uri="http://java.sun.com/portlet"; prefix="portlet"%>
<portlet:defineObjects />

<h1> Vous avez saisi : <% RenderRequest.GetParameter("choice") %>


Voila, Si vous voyez où je n'y arrive pas !
Merci beaucoup pour votre réponse,






Répondre à