2

JSF 2.0フレームワークを使用していますが、サポートが必要です。できるだけ簡単に言うと、必要なのは、ユーザーusernameとIDを取得して、作成しているアプリケーションに表示することです。

これは私のUserBeanクラスです:

@ManagedBean
@SessionScope
 public class UserBean implements Serializable {
 private static final long serialVersionUID = 1L;
 private int id;
 private String username;
 private String password;
 //getter and setter methods

このindex.xhtmlページで、ユーザーはログインするためにユーザー名とパスワードを入力する必要があります(データベースの値を比較します)。彼がそうするとき、私は彼のユーザー名とIDを次のページに出力し、アプリケーション全体を通してそれを追跡したいと思います。

4

3 に答える 3

2

あなたUserBeanすでにセッションスコープにいます。自分で「追跡」する必要はまったくありません。ビューに任意のJSFマネージドBeanのプロパティを表示する必要がある場合は、通常の方法でELでそれらにアクセスします。

<p>Welcome, #{userBean.username}!</p>

postconstructorまたは(action)listenerメソッドでユーザーの情報が必要なため、他のBeanに注入する必要がある場合は、を使用します@ManagedProperty

@ManagedBean
@RequestScoped
public class OtherBean {

    @ManagedProperty("#{userBean}")
    private UserBean userBean; // +setter

    // ...
 }

参照:

于 2012-09-19T13:39:37.640 に答える
0

セッションデータフォームページを直接取得したい場合。以下のように使用します。

   <h:outputText value="#{sessionScope.UserBean.username}"/>
   <h:outputText value="#{sessionScope.UserBean.id}"/>
于 2012-09-19T09:08:50.727 に答える
-1

ユーザー名とIDはセッションスコープのBeanに含まれているため。このようにセッションマップから取得できます。

page2.XHTML

<h:outputText value="#{page2Bean.uname}"/>
<h:outputText value="#{page2Bean.id}"/>


Page2Bean.java
@managedBean(name="page2Bean")
class Page2Bean {
private String uName;
private int id;
//getters and setters 
public page2Bean() {
UserBean uBean = (UserBean)     (FacesContext.getCurrentInstance().getExternalContext().getSessionMap()).get("userBean"));// get the UserBean which is in the session
 this.uName= uBean.getUserName();
this.id= uBean.getId();

}

コンストラクターでセッションデータ(この場合はユーザー名とID)を取得し、 page2.xhtml で使用する属性にそれらを割り当てるように編集します。

lemmeはそれが役立つかどうかを知っています...

于 2012-09-19T08:27:44.930 に答える