Jsf mysql

samiayassine Messages postés 6 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 28 mars 2012 - 26 mars 2012 à 21:35
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 28 mars 2012 à 15:48
Bonsoir,
je suis debutante en java et j'espere bien que vous m'aider à trouver une solution pour mon probleme.
je suis en train de developper une page d'authetification avec le jsf et une base de données mysql via netbeans 7.1.1
mon probleme que mon code source ne m'affiche aucune erreur mais lors d'affichage le boutton ne marche pas. c'est mon code source de la page indexe.XHTML:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>DDDDDDDDDDDDDDDDDD</title>
<h:outputStylesheet name="css/style1.css"/>
</h:head>
<h:body style="background-color: #0033ff">



Gestion De La Maintenance




Authentification

<h:outputText rendered="#{!login.connected}" value="#{login.message}" />
<h:outputText value=" Identifiant :"/>,
<h:inputText id="identifiant" value="#{login.identifiant}"/>,

----

----

----

----

----

<h:outputText value=" Mot de passe :"/>,
<h:inputSecret id="motdepasse" value="#{login.motdepasse}"/>,

----

----

----

----

----

<h:commandButton value="Connexion" id="connexion" action="#{login.checkLogin()}"/>,
<h:commandButton value="Annuller" id="annuler"/>





</h:body>
</html>


et le fichier login.java:

package jsf;

import java.io.Serializable;
import java.sql.DriverManager;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import java.sql.*;


/**
*
* @author SAMIA
*/
@Named(value="login")
@SessionScoped

public class login implements Serializable
{
private String identifiant;
private String motdepasse;
private boolean connected = false;
private String message = "Veuillez vous identifier :";

public String getIdentifiant() {
return identifiant;
}

public void setIdentifiant(String identifiant) {
this.identifiant = identifiant;
}

public boolean isConnected() {
return connected;
}

public void setConnected(boolean connected) {
this.connected = connected;
}

public String getMotdepasse() {
return motdepasse;
}

public void setMotdepasse(String motdepasse) {
this.motdepasse = motdepasse;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

/** creation d'une nouvelle instance de login */
public login()
{
}
//////////////////////////////////////////////
public void checkLogin() throws SQLException
{
String url1="jdbc:mysql://localhost:3306/telecom";
String userName1="root"; // nom du root
String pwd1 = ""; // passwprd du root
Connection conn = DriverManager.getConnection(url1, userName1, pwd1);
Statement stmt = conn.createStatement();
String sqlselect = "SELECT MotDePasse FROM employee WHERE CodeEmployee='"+this.identifiant+"'";
ResultSet rSet = stmt.executeQuery(sqlselect);
String mp=rSet.getString(1);
connected = (motdepasse.equals(mp));

if (connected) {
message = "Bienvenue, vous êtes connecté";
} else {
message = "Mauvais login/password, veuillez recommencer !";
}

}

}

14 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
27 mars 2012 à 08:24
Bonjour :

Il ne faut pas utiliser les parenthèses pour appeler les méthodes et tu peux mettre un ajax="false" sur ton bouton, il me semble que pour les composants jsf par défaut, c'est inutile mais ca t'éviteras de modifier le code si tu utilises une libraire additionnelle pour avoir des composants plus jolis :

<td align="center"><h:commandButton value="Connexion" id="connexion" action="#{login.checkLogin}" ajax="false" /></td> 
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
27 mars 2012 à 08:26
public void checkLogin() throws SQLException


Affin d'effectuer la redirection, la méthode doit avoir une signature String :

public String checkLogin() throws SQLException
0
samiayassine Messages postés 6 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 28 mars 2012
27 mars 2012 à 21:46
ça marche plus même avec ces modification
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 mars 2012 à 08:07
Qu'est ce que ca veut dire "Ca marche plus" ?

Les infos sont elles récupérées dans la base ? Est ce que ton écran est bien redirigé ? Comment as tu édité de faces-config.xml ?

La sortie de la méthode doit être soit success soit fail et dans les deux cas, la redirection est différente.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
samiayassine Messages postés 6 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 28 mars 2012
28 mars 2012 à 14:20
le problème que j'ai oublié d'ajouter <h:forme>...</forme>.
mais lors d l’exécution lorsque je donne un login et mot de passe fausses une message d'erreur s'affiche ("login ou mot de passe faut") mais lorsque je lui donne un login et mot de passe juste il ne m'affiche rien.
c'est le code java d’authentification:
//////////////////////////////////////////////////////////////
public void checkLogin() throws SQLException
{
String url1="jdbc:mysql://localhost:3306/telecom";
String userName1="root"; // nom du root
String pwd1 = ""; // passwprd du root
Connection conn = DriverManager.getConnection(url1, userName1, pwd1);
Statement stmt = conn.createStatement();
String sqlselect = "SELECT * FROM employee WHERE CodeEmployee='"+this.identifiant+"'";
ResultSet rSet = stmt.executeQuery(sqlselect);
if(rSet.first()!=false)
{
String mp=rSet.getString("MotDePasse");
connected = (motdepasse.equals(mp));

if (connected) {
message = mp;
}
else{
message = "Mauvais login/password, veuillez recommencer !";
}
}
else{
message="erreur";
}
}
///////////////////////////////////////////////
je crois que le problème est dans le contenue de ResultSet mais j'arrive pas à résoudre
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 mars 2012 à 14:24
Tu n'as pas changé la signature de ta méthode. A quoi bon de donner des conseils...
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 mars 2012 à 14:26
En plus ton code est sensibles aux injections SQL.

Tu as édité le faces-config.xml ?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 mars 2012 à 14:26
Ajoutes un ; a la fin de ta requête :
String sqlselect = "SELECT * FROM employee WHERE CodeEmployee='"+this.identifiant+"';"; 
0
samiayassine Messages postés 6 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 28 mars 2012
28 mars 2012 à 14:28
je suis désole mais j'ai pas compris ta repense
0
samiayassine Messages postés 6 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 28 mars 2012
28 mars 2012 à 14:34
le probleme n'ai pas dans la requête mais la recupération du resultat de requete est elle juste.
en plus j'ai pas un fichier face-config dans mon projet
just web.xml et persistence.xml et beans.xml c'est tout.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 mars 2012 à 14:43
Tu fais comment pour rediriger sans faces-config ? Tu utilises les annotations, c'est possible même si c'est une mauvaise idée, mais en tout cas, je ne les vois pas sur la classe que tu as utilisé.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 mars 2012 à 14:44
D'ailleurs, tu n'as pas mis @ManagedBean non plus
0
samiayassine Messages postés 6 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 28 mars 2012
28 mars 2012 à 15:15
svp comment rediriger avec faces-config.xml merci de m'aider
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 mars 2012 à 15:48
Cherches un tutoriel, je ne vais pas le faire à ta place !

En gros tu édites un fichier qui est au même niveau que le web.xml et qui contient ceci :

    <navigation-rule>
    <from-view-id>vue d'origine</from-view-id>
    <navigation-case>
    	<from-action>#{bean.nomMethodeAction}</from-action>
    <from-outcome>success</from-outcome>
    <to-view-id>vue sur laquelle on redirige</to-view-id>    
    </navigation-case>    
    </navigation-rule>


Mais cherches un tutoriel, sinon, tu n'y arriveras pas.
0
Rejoignez-nous