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 :

JSF 2.0 input type="file"


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut JSF 2.0 input type="file"
    Bonjour à tous,

    J'utilise JSF 2.0 depuis peu, et je ne peux utiliser que la librairie standard de jsf (je ne peux donc pas utiliser myfaces, icefaces, ou autres ....).

    Je dois créer bouton qui permet de faire un browse (ouvrir un fichier)
    JSF 2.0 (standard) n'a pas de composant input file.

    j'utilise <input type="file" name="filename"/>
    ce qui me crée mon bouton avec le browse.

    Maintenant comment faire pour lire le fichier? Je suis en local, et le fichier doit être lu coté serveur.

    Le but c'est lire le fichier (xml) et extraire les données.

    Merci d'avance pour vos réponses.

  2. #2
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 28
    Par défaut
    Bonjour,
    pour ajouter un bouton qui permet de faire un browse, tu peux ajouter à l'implémentation standard de jsf, une bibliothèque plus riche en composants telle que richfaces, un exemple d'un téléchargement de fichier avec cette bibliotèque peut etre trouvé à l'adresse:
    http://livedemo.exadel.com/richfaces...load&tab=usage
    une fois que vous avez le chemin complet du fichier, vous pouvez le lire en utilisant un code simple en java :
    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
    public void readFile(File fichier){
    	        FacesContext facesContext = FacesContext.getCurrentInstance();
    	        ExternalContext externalContext = facesContext.getExternalContext();
    	        HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
     
    	        BufferedInputStream input = null;
    	        BufferedOutputStream output = null;
     
    	        try {
    	            // Open file.
    	            input = new BufferedInputStream(new FileInputStream(fichier), 10240);
     
    	            // Init servlet response.
    	            response.reset();
    	            // lire un fichier pdf
    	            response.setHeader("Content-type", "application/pdf"); 
    	            response.setContentLength((int)fichier.length());
     
    				response.setHeader("Content-disposition", "attachment; filename=" + fichier.getName());
    	            response.setHeader("pragma", "public");
    	            output = new BufferedOutputStream(response.getOutputStream(), 10240);
     
    	            // Write file contents to response.
    	            byte[] buffer = new byte[10240];
    	            int length;
    	            while ((length = input.read(buffer)) > 0) {
    	                output.write(buffer, 0, length);
    	            }
     
    	            // Finalize task.
    	            output.flush();
    	        } finally {
    	            // Gently close streams.
    	            close(output);
    	            close(input);
    	        }
     
    	        // Inform JSF that it doesn't need to handle response.
    	        // This is very important, otherwise you will get the following exception in the logs:
    	        // java.lang.IllegalStateException: Cannot forward after response has been committed.
    	        facesContext.responseComplete();
    	    }
    espérons que ce code vous sera utile.

  3. #3
    Membre très actif
    Profil pro
    aucune
    Inscrit en
    Juillet 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Juillet 2007
    Messages : 134
    Par défaut
    @hadmarin il précise bien qu'il ne peut ou veut pas utiliser une autre librairie que jsf standard.

    Essaye ça balusc.blogspot.com

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    bonjour à tous,
    moi j'utilise un <input type="file" name="monFichier" > mais je veux récupérer dans mon bean le chemin retourné soit ce qui est équivalent à :
    value="#{ben.val}" dans un inputText mais j'arrive pas à trouver comment faire
    quelqu'un pourrait m'aider SVP

  5. #5
    Membre éclairé Avatar de liquideshark
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2006
    Messages : 347
    Par défaut
    Citation Envoyé par khwira Voir le message
    bonjour à tous,
    moi j'utilise un <input type="file" name="monFichier" > mais je veux récupérer dans mon bean le chemin retourné soit ce qui est équivalent à :
    value="#{ben.val}" dans un inputText mais j'arrive pas à trouver comment faire
    quelqu'un pourrait m'aider SVP
    Super compliqué à partir de JSF essaye plutôt le lien de threshold.
    Ou encore regarde du coté de primefaces ou une autre framework

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2004, 15h44

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