Я пытаюсь в своем приложении получить идентификатор текущего пользователя, когда он создает документ для регистрации этого документа с идентификатором пользователя. Но при использовании <f:viewParam>
идентификатор пользователя в компоненте douce всегда имеет значение null.viewParam возвращает нулевое значение
Вот мой код:
<h:form id="form">
<br></br>
<div class="centre">
<p:graphicImage url="images/usericon.png" id="usericon"
alt="utilisateur IsetN" style="width:100px;height:100px"></p:graphicImage>
</div>
<br></br>
<div class="centre">
<p:inputText placeholder="E-mail" required="true" id="email"
value="#{userBean.email}" requiredMessage="E-mail obligatoire">
<f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
</p:inputText>
<p:message for="email"></p:message>
</div>
<br></br>
<div class="centre">
<p:password id="motdepasse" value="#{userBean.password}" required="true"
placeholder="Mot de passe" requiredMessage="Mot de passe Obligatoire">
</p:password>
<p:message for="motdepasse"></p:message>
</div>
<br></br>
<div class="centre">
<h:commandButton id="login" value="Connexion" action="#{userBean.login}" update="form" >
<f:param name="IdUser" value="#{userBean.cin}" >
</f:param>
</h:commandButton>
<p:message for="login"></p:message>
</div>
<br></br>
<div class="centre">
<a href="AideAdmin.xhtml">Compte n'est pas accessible ?</a><br></br>
</div>
<div class="centre">
<a href="authentification.xhtml">Connexion premier fois ?</a><br></br>
</div>
</h:form>
и это страница назначения
!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:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
<link rel="stylesheet" type="text/css" href="css/styles.css" />
<title>Profil: Portail IsetN</title>
<link rel="stylesheet" href="css/style.css" media="screen" />
</h:head>
<f:metadata>
<f:viewParam name="IdUser" value="#{userBean.cin}"
converter="javax.faces.Long" />
<f:viewParam name="IdUser" value="#{documentBean.cin}"
converter="javax.faces.Long" />
</f:metadata>
<h:body>
и это код managedBeans
@ManagedBean(name="userBean")
@SessionScoped
public class UtilisateurBean implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Utilisateur newUtilisateur = new Utilisateur();
private List<SelectItem> etudsItem;
private DataModel utilisateurs;
private Utilisateur Utilisateur=new Utilisateur();
private Utilisateur editUtilisateur;
private Long cin;
private String nom;
private String prenom;
private String email;
private String password;
private DaoUtilisateur eDao = new DaoUtilisateur();
public String login(){
try{
Utilisateur= eDao.findUtilisateurByEmail(email, password) ;
if (Utilisateur==null){
FacesMessage msg = new FacesMessage("Mot de passe ou email non valide");
FacesContext.getCurrentInstance().addMessage(null, msg);
return "loginfailed";
}
else{
cin=Utilisateur.getCin();
System.out.println("cin connecté "+cin);
return"loginUtilisateur";
}
}
catch(Exception ex){ return"loginfailed";}
}
и это документ Bean код
@ManagedBean(name="documentBean")
@SessionScoped
public class DocumentBean implements java.io.Serializable{
private static final long serialVersionUID = 1L;
private List<SelectItem> docItems;
private DataModel documents;
private List<Document> tps;
private List<Document> tds;
private List<Document> annonces;
private Document newDocument= new Document();
private Document editDocument;
private Long cin;
public String create(){
newDocument.setDateajout(new Date());
System.out.println("your cin annonce "+cin);
dDao.ajouter(newDocument,cin);
newDocument= new Document();
documents.setWrappedData(dDao.selectAll());
return null;
}
Я хочу знать, что я пропал, я обновил mojarra, изменил пространства имен, изменил область бобов, но все же он не работает.
Я переключился на использование '' и теперь его работает –
MeknessiHamida
Ничего, поэтому отметьте ответ как «правильный», чтобы он мог помочь и другим. :-) –
Действительно я собирался отметить это как ответ, это логическая проблема – MeknessiHamida