現在、ログインしているユーザーからすべてのデータを取得しようとしているので、たとえば、メールや連絡先をリストしたり、新しいものを変更または追加したりできます。
最初に、ログイン画面で、メソッドを使用してそのユーザーをセッションに入れます。
private void putUserInSession(Usuario user) {
Map<String, Object> session = FacesContext.getCurrentInstance()
.getExternalContext().getSessionMap();
session.put("LOGGEDIN_USER", user);
}
そして、そのユーザーを取得して、個人データをページに表示して変更および更新するために、.xhtml ページ内の呼び出しで次のコードを使用します。「exito」(成功) が返されるので、編集ページ。
public String proceed(){
Usuario usermodificar = (Usuario) getObjectFromSession("LOGGEDIN_USER");
usuario.setUsuario(usermodificar);
return "exito";
}
private Object getObjectFromSession(String key) {
return FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().get(key);
}
セッション中のユーザーに Bean 値を設定しようとしましたが、データが表示されません。
また、特定の電子メールをユーザーアカウント内に保存するなど、他の Bean 内で取得しようとします (そのため、彼または彼女の ID が必要です)。
Usuario usuario = (Usuario) getObjectFromSession("LOGGEDIN_USER");
しかし、前のケースのようには機能しません。