Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
2037 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Portlet] Probleme avec IE

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Portlet] Probleme avec IE

n°1569486
tinico
Posté le 04-06-2007 à 10:53:32  profilanswer
 

Bonjour a tous !!
 
Je devellope un forum sous forme de portlet a introduire sur un portail Vignette et déployé sur un serveur d'application WebLogic...
 
J'ai un enorme problème et mon dernier espoir, c'est vous !!
 
Voila, quand je réalise un formulaire pour introduire une discution dans le forum, la portlet récupère les argument via la fonction processAction(). Ensuite (si j'ai bien compris), la réponse créé par cette fontion est envoyé a la fonction render(). Mon probleme, est que, bien que le forum envois ses données en POST, le gestionnaire de portlet semble envoyer les données de processAction() à render() en GET... Ce qui fait que, quand le message a envoyer est trop long, IE plante !!! (longueur maximal d'une url sous IE : 2080 environ).
 
Voila une simple portlet qui illustre ce probleme :
 

Code :
  1. package example;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.portlet.ActionRequest;
  5. import javax.portlet.ActionResponse;
  6. import javax.portlet.GenericPortlet;
  7. import javax.portlet.PortletConfig;
  8. import javax.portlet.PortletException;
  9. import javax.portlet.PortletURL;
  10. import javax.portlet.RenderRequest;
  11. import javax.portlet.RenderResponse;
  12. public class TestPortlet extends GenericPortlet {
  13.   public TestPortlet()
  14.   {
  15.   }
  16.   public void init(PortletConfig config) throws PortletException
  17.   {
  18.     super.init(config);
  19.   }
  20.   public void processAction(ActionRequest request, ActionResponse response)
  21.     throws PortletException, IOException
  22.   {
  23.     // On recupere les valeurs du formulaires
  24.     String name = request.getParameter("name" );
  25.     String message = request.getParameter("message" );
  26.     // On les remets dans la péponse
  27.     response.setRenderParameter("name", name);
  28.     response.setRenderParameter("message", message);
  29.   }
  30.   public void render(RenderRequest request, RenderResponse response)
  31.     throws PortletException, IOException
  32.   {
  33.     String name = request.getParameter("name" );
  34.     if (name == null)
  35.      name = "Your name";
  36.     String message = request.getParameter("message" );
  37.     if (message == null)
  38.      message = "Here, your message !";
  39.     response.setContentType("text/html" );
  40.     PrintWriter out = response.getWriter();
  41.     out.println("Hello, " + name + ".<br>Your message is :<br>" + message);
  42.     out.println("<br><br>" );
  43.     PortletURL submitUrl = response.createActionURL();
  44.     out.println("<form method='POST' cellspacing='3' cellpadding='3' action='" + submitUrl + "'>" );
  45.     out.println("<table>" );
  46.     out.println("<tr>" );
  47.     out.println("<td>Name:" );
  48.     out.println("</td>" );
  49.     out.println("<td>" );
  50.     out.println("<TEXTAREA name='name' rows='1' cols='100'>" + name + "</TEXTAREA>" );
  51.     //out.println("<input type='text' size='80' name='name' value='" + name + "'>" );
  52.     out.println("</td>" );
  53.     out.println("</tr>" );   
  54.     out.println("<tr>" );
  55.     out.println("<td>" );
  56.     out.println("Message:" );
  57.     out.println("</td>" );
  58.     out.println("<td>" );
  59.     out.println("<TEXTAREA name='message' rows='25' cols='100'>" + message + "</TEXTAREA>" );
  60.     //out.println("<input type='text' size='80' name='message' value='" + message + "'>" );
  61.     out.println("</td>" );
  62.     out.println("<tr>" );
  63.     out.println("</table>" );
  64.     out.println("<input type='submit'" );
  65.     out.println("</form>" );
  66.   }
  67.   public void destroy()
  68.   {
  69.   }
  70. }


 
Cette portlet affiche un champs "nom" et un champ "message"...
Quand le bouton "submit" est activé, les données sont envoyés à processAction() qui les renvoi a render() pour que le nom et le message entré s'affiche avant le formulaire !!
 
Quand le message dépasse une certaine taille, IE plante (sous FireFox, ça fonctionne, mais je dois bosser sous IE :? ).
 
Pouir ceux qui veulent tester voici les fichiers de déploiements :
 
web.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app
  3.     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
  4.     "http://java.sun.com/dtd/web-app_2_3.dtd">
  5. <web-app>
  6.   <!-- POUR VIGNETTE -->
  7.   <context-param>
  8.     <param-name>contextPath</param-name>
  9.     <param-value>SimplePortlet</param-value>
  10.     <description>SimplePortlet for test</description>
  11.   </context-param>
  12.   <!-- FIN POUR VIGNETTE -->
  13.   <!-- POUR VIGNETTE -->
  14.   <listener>
  15.     <listener-class>com.vignette.portal.portlet.jsrcontainer.PortletApplicationServletContextListener</listener-class>
  16.   </listener>
  17.   <!-- FIN POUR VIGNETTE -->
  18.   <!-- POUR VIGNETTE -->
  19.   <servlet>
  20. <servlet-name>PortletCommandServlet</servlet-name>
  21. <display-name>Portlet Command Servlet</display-name>
  22. <description>Utilized by VAP to invoke JSR 168 portlets</description>
  23. <servlet-class>com.vignette.portal.portlet.jsrcontainer.PortletCommandServlet</servlet-class>
  24.   </servlet>
  25.   <!-- FIN POUR VIGNETTE -->
  26.   <!-- POUR VIGNETTE -->
  27.   <servlet-mapping>
  28. <servlet-name>PortletCommandServlet</servlet-name>
  29. <url-pattern>/portletCommand/*</url-pattern>
  30.   </servlet-mapping>
  31.   <!-- FIN POUR VIGNETTE -->
  32. </web-app>


 
portlet.xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
  3.   <portlet>
  4.         <description>SimplePortlet</description>
  5.         <portlet-name>SimplePortlet</portlet-name>
  6.         <display-name>SimplePortlet</display-name>
  7.         <portlet-class>example.TestPortlet</portlet-class>
  8.         <expiration-cache>-1</expiration-cache>
  9.         <supports>
  10.             <mime-type>text/html</mime-type>
  11.             <portlet-mode>VIEW</portlet-mode>
  12.         </supports>
  13.         <portlet-info>
  14.     <title>SimplePortlet</title>
  15.     <short-title>SimplePortlet</short-title>
  16.     <keywords>SimplePortlet</keywords>
  17. </portlet-info>
  18.     </portlet>               
  19. </portlet-app>


 
Merci beaucoup de votre aide, c'est extremement important !


Message édité par tinico le 04-06-2007 à 10:55:28
mood
Publicité
Posté le 04-06-2007 à 10:53:32  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Portlet] Probleme avec IE

 

Sujets relatifs
Problème avec un menu css sous IE7Problème de lien
Probléme pour remplacer = dans une variableProblème bizarre avec GCC (pour débutant)
Problème fgets suite à changement d'OSprobleme compilation XPCOM/C++
Probleme avec la bibliothèque/toolbox Dojo (Javascript)Problème variable static - application web tomcat
[ORACLE] Problème execution requête SELECTProblème de sécurité (accès à une section admin)
Plus de sujets relatifs à : [Portlet] Probleme avec IE


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR