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 :

Invoquer Java depuis une vue JSF


Sujet :

JSF Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Invoquer Java depuis une vue JSF
    Bonjour tout le monde, voila mon probleme:
    Je suis en train de developper un projet (stage) qui contient deux parties: Une partie pure java ou j'ai developpé mes classes, et une seconde partie web dans laquelle j'utilise JSF. Le probleme c'est que j'arrive pas à invoquer mes classes java à partir de la vue jsf. Quelqu'un pourrait il m'aider SVP ?

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut

    qu´est ce que tu entends pas invoquer Java dans JSF?

    Eric

  3. #3
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    salut eric,
    j'ai des boutons dans la vue, je veux executer des classes java une fois qu'on appuie sur un des boutons.

  4. #4
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Il faut creer des ManagedBean et les acceder a cela depuis JSF
    Erc

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Points : 491
    Points
    491
    Par défaut
    Hello
    Comme l'a dit jeffray, il te faut définir ta classe comme un managed bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @Named // defini ta classe comme un managed bean
    @ViewScoped // defini la portée d'existance de ta classe
    public class Controller {
     
    	public void action(){
    		//code a effectuer
    	}
    }
    et tu pourras y acceder dans ton xhtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:commandButton action="#{controller.action()}" value="Push Here" />

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Malinaka Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @Named // defini ta classe comme un managed bean
    @ViewScoped // defini la portée d'existance de ta classe
    public class Controller {
     
        public void action(){
            //code a effectuer
        }
    }
    Attention, @Named est une annotation CDI, pour un ManagedBean JSF, c'est l'annotation @ManagedBean qu'il faudra utiliser
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Points : 491
    Points
    491
    Par défaut
    Oui désolée, l'habitude

  8. #8
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Merci à tous pour vos reponses. J'ai fait ce que vous m'avez dit, mais ça marche toujours pas. La methode que je veux appeleer effectue une comparaison entre deux fichiers et renvoie le resultat vers un fichier html. Pour simplifier, j'ai appliqué vos instructions sur un exemple tres simple. J'ai donc créer une classe Controller qui effectue une simple comparaison entre deux chaines et renvoie un int comme resultat. La vue s'affiche mais quand j'appuie sur le bouton rien ne se passe. Vous trouverez ci-dessous le code :

    - Le ManagedBean:
    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
    import javax.annotation.ManagedBean;
    import javax.faces.bean.ViewScoped;
     
     
    @ManagedBean // defini ta classe comme un managed bean
    @ViewScoped // defini la portée d'existance de ta classe
    public class Controller {
        private int res;
        private String ch1;
        private String ch2;
     
        public void action(){
                ch1="Ma premiére chaine";
            ch2="MA deuxiéme chaine";
            res = ch1.compareTo(ch2);
            System.out.println(res);        
        }
    }

    Le vue view.xhtml:

    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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> 
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Test</title>
    </head>
     
    <body>
    <P> Acceder à votre méthode ici</P>
    <h:commandButton action="#{controller.action()}" value="Push Here" /> 
     
    </body>
     
    </html>

  9. #9
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Points : 491
    Points
    491
    Par défaut
    Salut,
    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
     
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> 
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Test</title>
    </head>
     
    <body>
    <h:form id="monForm">
    <P> Acceder à votre méthode ici</P>
    <h:commandButton action="#{controller.action()}" value="Push Here" /> 
    </h:form>
     
    </body>
     
    </html>
    Pour soumettre une action, mieu vaut être dans un formulaire

  10. #10
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta reponse Malinaka, cependant le probleme persiste, voici l'erreur qui s'affiche:

    An Error Occurred:
    javax.el.PropertyNotFoundException: /view.xhtml at line 12 and column 70 action="#{controller.action()}": Target Unreachable, identifier 'controller' resolved to null

    Caused by:
    javax.el.PropertyNotFoundException - /view.xhtml at line 12 and column 70 action="#{controller.action()}": Target Unreachable, identifier 'controller' resolved to null

  11. #11
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Points : 491
    Points
    491
    Par défaut
    C'est parce que JSF n'arrive pas a résoudre ton appel.
    Cela peut être du à plusieurs raison mais je pencherai pour un problème de classpath.
    Essaie donc de verifier la construction de ton WAR, que tu ais bien une arborescence du type:
    war/WEB-INF/classes/.... ta classe
    Apres cela peut venir de la config de ton web.xml, de ton mecanisme d'injections.....
    bref il va falloir configurer

  12. #12
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Est-ce que tu peux m'eclaircir un peu plus stp, j'ai beau essayé je trouve toujours pas la solution

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer ton web.xml ?
    Qu'as-tu dans le répertoire /WEB-INF/lib ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Voici le contenu de mon web.xml et en piece jointe un imprime ecran montrant le contenu de mon /WEB-INF :Nom : Sans titre.png
Affichages : 177
Taille : 11,7 Ko
    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
    <?xml version="1.0" encoding="UTF-8"?>
     
     
    <web-app version="2.3">
    <!-- Changer cette valeur à "Production" lors du déploiement final de l'application -->
    	<context-param>
    		<param-name>javax.faces.PROJECT_STAGE</param-name>
    		<param-value>Development</param-value>
    	</context-param>
     
    	<!-- Déclaration du contrôleur central de JSF : la FacesServlet -->
    	<servlet>
    		<servlet-name>Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
    	<!-- Mapping : association des requêtes dont le fichier porte l'extension .xhtml à la FacesServlet -->
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.xhtml</url-pattern>
    	</servlet-mapping>
     
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>/faces/*</url-pattern>
    	</servlet-mapping>
     
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.jsf</url-pattern>
    	</servlet-mapping>
     
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.faces</url-pattern>
    	</servlet-mapping>
     
     
    </web-app>

  15. #15
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Alors, Quelqu'un aurait it une idée ?

  16. #16
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il y a tellement de cas qui pourraient faire que ça ne fonctionne pas qu'il est difficile de t'aider...
    Regarde dans la log de ton serveur pour chercher une piste.
    D'ailleurs, quel serveur utilises-tu ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Candidat au Club
    Homme Profil pro
    Support Applicatif
    Inscrit en
    Septembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support Applicatif

    Informations forums :
    Inscription : Septembre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    J'utilise Apache Tomcat 7

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/09/2010, 09h56
  2. Réponses: 5
    Dernier message: 03/11/2008, 11h29
  3. Appel des objet Java depuis une JSP
    Par Titeuf82 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 07/03/2008, 11h07
  4. Appel d'un programme JAVA depuis une procedure PL/SQL
    Par farenheiit dans le forum PL/SQL
    Réponses: 8
    Dernier message: 04/03/2008, 11h03
  5. Appeler une application Java depuis une JSP ?
    Par bekara_k dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 19/04/2007, 13h08

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