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

JSF Java Discussion :

Equivalent de FacesContext sans utiliser JSF


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 13
    Par défaut Equivalent de FacesContext sans utiliser JSF
    salut , moi je devloppe une application web dans laquelle je doit generer des rapport avec jasper report . en fait j'ai testé l'exemple d'integration de jasper report avec JSF . moi je suis obligé de travailler juste avec JSP et non pas avec JSF donc j'ai essayé de configurer l'exemple pour l'adapter a mon application . mais je me suis bloqué de trouver équivalent de ces deux lignes sans utiliser JSF:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FacesContext context = FacesContext.getCurrentInstance();
    HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
    la méthode dans mon javabean pour jsf est :
    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
     
    public String viewReportPDF() throws SQLException, JRException, IOException, ClassNotFoundException {
    		Class.forName("com.mysql.jdbc.Driver");
                    String reportId = "report8";
          connection = (Connection) DriverManager.getConnection(HOST, USERNAME, PASSWORD);
     
    		HashMap parameterMap = new HashMap();
    		parameterMap.put("avancement", avancement);
     
    		//File file = new File("");
    		JasperPrint jasperPrint = JasperFillManager.fillReport("C:\\Users\\boussoufiane\\Documents\\NetBeansProjects\\jspr\\report1.jasper",
    				//new FileInputStream(new File(file, reportId + ".jasper")),
    				parameterMap, connection);
    		byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
    		FacesContext context = FacesContext.getCurrentInstance();
    		HttpServletResponse response = (HttpServletResponse) context
    				.getExternalContext().getResponse();
    		/***********************************************************************
                     * Pour afficher une boîte de dialogue pour enregistrer le fichier sous
                     * le nom rapport.pdf
                     **********************************************************************/
    		response.addHeader("Content-disposition",
    				"attachment;filename=rapport.pdf");
    		response.setContentLength(bytes.length);
    		response.getOutputStream().write(bytes);
    		response.setContentType("application/pdf");
    		context.responseComplete();
    		return null;
    }

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Moi j'ai toujours conseillé de faire des hello world jsp/servlet avant d'attaquer les gros framework qui nous rendent transparents le fonctionnement de base des jsp/servlet. Alors ta réponse très simple, dans une servlet de base les methodes doGet et doPost te donnent une reference sur les objets Response et Request :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void doGet(HttpServletRequest req, HttpServletResponse res) 
              throws ServletException, IOException
        {
    	...
        }
     
        // reponse au "POST"    
        public void doPost(HttpServletRequest req, HttpServletResponse res) 
              throws ServletException, IOException
        {
    	...
        }
    Ceci dit pourquoi n'es tu pas resté pas resté sous JSF, tu peux très bien produire du jasper dans un controleur JSF, je l'ai deja fait et ca marchait bien.

  3. #3
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Ceci dit pourquoi n'es tu pas resté pas resté sous JSF, tu peux très bien produire du jasper dans un controleur JSF, je l'ai deja fait et ca marchait bien.
    C'est peut être qu'il envisage de developper son appli qu'avec les JSP/Servlets. Il veut un exemple qui marche sans JSF.
    Pour répondre à ta question si tu appelle ta fonction viewReportPDF à partir d'une servlet, et comme dis DevServlet, tu as accés à la response dans doGet et doPost.
    Donc tu n'a pas besoin de tes 2 lignes.

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/02/2008, 12h34
  2. [CR8.5] Image dynamique sans utiliser RDC ou Blob
    Par lrp dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/12/2005, 14h43
  3. Réponses: 6
    Dernier message: 27/05/2004, 10h41
  4. [][Timer] Créer un Timer sans utiliser le composant
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 01/10/2003, 11h04
  5. Tore en OpenGL sans utiliser glut
    Par lefort dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 20/11/2002, 16h32

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