JSF - Obtenir le SessionScoped exemple d'Haricot
J'ai cette configuration sur mon application web. 2 fèves :
1° Bean - Il vérifie la connexion;
@ManagedBean(name="login")
@SessionScoped
public class Login {
private String nickname;
private String password;
private boolean isLogged;
public String getNickname() { return nickname; }
public void setNickname(String newValue) { nickname=newValue; }
public String getPassword() { return password; }
public void setPassword(String newValue) { password=newValue; }
public void checkLogin() {
... i check on db the nickname and the password ...
if(USER EXIST) {
isLogged=true;
} else {
isLogged=false;
}
return true;
}
}
2° Bean - Gérer les paramètres Utilisateur :
@ManagedBean(name="user")
@SessionScoped
public class User {
private String name;
private String surname;
private String mail;
public User() {
String[] record=null;
Database mydb=Configuration.getDatabase();
mydb.connetti();
ArrayList<String[]> db_result=null;
db_result=mydb.selectQuery("SELECT name, surname, mail, domicilio FROM users WHERE nickname='???????'");
int i = 0;
while (i<db_result.size() ) {
record=(String[]) db_result.get(i);
i++;
}
}
... getter and setter methods...
}
Comme vous pouvez le voir, je voudrais savoir comment obtenir le surnom programmés précédemment sur mon login
bean, afin que je puisse faire la requête sur ma DB.
En fait j'ai besoin pour obtenir l'instance de l'actuelle session bean login : comment puis-je l'obtenir? Je dois utiliser des choses comme session.getBean("login")
🙂
Espère que cette question est claire 🙂
OriginalL'auteur markzzz | 2010-11-25
Vous devez vous connecter pour publier un commentaire.
Utilisation
@ManagedProperty
à injecter et à l'utilisation@PostConstruct
pour y accéder, après bean construction (parce que dans un constructeur normal, il serait encorenull
).Cela dit, ce n'est pas la bonne approche. Vous souhaitez faire l'inverse. Injecter
User
dansLogin
par@ManagedProperty(value="#{user}")
et de faire le travail pendant présenter une méthode d'action.Vous souhaitez également mettre le mot de passe dans
WHERE
clause. Il n'y a absolument pas besoin de tirer l'ensemble de la table des utilisateurs en Java de la mémoire et de déterminer un par un. Il suffit de laisser le DB de faire le travail et vérifier si elle renvoie zéro ou une ligne.Login
haricot le haricot du constructeur. Il serait encorenull
à ce point. En passant, le nom de la méthode n'a pas nécessairement besoin d'êtreinit()
, vous pouvez choisir ce que vous voulez, tant qu'il y a un@PostConstruct
sur elle.Je ne suis pas sûr mais je crois qu'il y manque des setter pour la Connexion dans mes applications, il est nécessaire
c'est rien de plus qu'évident besoin d'un getter/setter pour cela. C'est un haricot. J'ai édité l'exemple de code, de sorte que c'est plus clair pour les ignorants.
Oui, j'ai remarqué que j'ai donc supprimé mon commentaire précédent
Uhm... je utiliser la classe Utilisateur enregistré le temporany les données de l'Utilisateur (nom, prénom, ville, mail, date de naissance, etc etc) quand il afficher/modifier son propre profil. J'ai besoin d'une sorte de haricot pour récupérer toutes les données. J'espère que vous comprenez ce que je dis 🙂
OriginalL'auteur BalusC
Également essayer d'utiliser le code suivant:
OriginalL'auteur Matt W