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,

--
----------------------------------------------------
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]
----------------------------------------------------

Bonjour,



Pour encoder un url avec les portlets JSR168, il faut procéder ainsi:



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

<portlet:defineObjects />

...



<% PortletURL url = renderRequest.renderURL() %>

....

<form action='<%=url.toString())%>'

...



Dans la méthode render(), ou doView(), il faut traiter la valeur des paramètres (comme dans la méthode service() d'un servlet) puis dispatcher vers le jsp response.jsp.



Cordialement,

KT.





Christophe Dumonet a écrit :


Bonjour,
J'ai une question concernant l'utilisation des formulaires dans des JSPs dans un contexte de portlet.
Concrètement :
- je crée une portlet, dans la méthode doView, je créé un objet portletRequestDispatcher pour avoir l'éxécution d'un JSP dans le VIEW du portlet. PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/convertisseur.jsp");
   rd.include(request,response);

-ça fonctionne bien, mon JSP s'affiche dans le portlet en VIEW.

LE PROBLEME :
--> mon JSP est un basic formulaire de saisie, qui doit appeler un autre jsp pour interpréter la réponse.

mon JSP crée un formulaire et j'encode comme ceci la redirection vers le jsp qui interprétera la réponse : <form action='<%=response.encodeURL(request.getContextPath()+"/reponse.jsp")%>' method=post>

--> LE jsp réponse.jsp est bien executé, il récupère bien les variables passés en POST, MAIS JE SORS DU PORTAIL JAHIA : mon jsp est exécuté tout seul sans jahia.

comment faire pour que ce jsp d'action de formulaire soit exécuté dans le contexte de mon portlet dans jahia ?


Merci pour vos réponses !
Cordialement,


Répondre à