3

私はJSFにまったく慣れていないので、JSFをどのように扱うべきかを理解するために、いくつかの基本的なことを行っています。私のプロジェクトの1つには、以下のようなManagedBean、SessionScopedがあります。

@ManagedBean(name="user")
@SessionScoped
public class User implements Serializable
// Having a couple of String properties (with setters and getters).

これで、フォームの1つのページに<h:inputText id="firstName" value="#{user.firstName}" ... />、ユーザーから値を取得してBeanのプロパティに入れることが期待されるがあります。2番目のページには、Beanからアクセスする入力データが表示されます。(<h:outputText value="${user.firstName}"/>)。

問題は、その後(URLを入力するだけで)3ページ目に移動し、同じ行を使用してBeanからのデータをもう一度表示しようとすると、データが表示されないことです。Beanがセッションスコープになっている間は、現在のセッションでも引き続き使用できるはずだと思っていました。

4

2 に答える 2

8

javax.enterprise...の代わりにimportjavax.faces.bean.SessionScopedを使用していることを確認してください。

于 2010-01-24T05:03:44.470 に答える
0

たぶん誰かがまだこれに興味を持っています:私は上記と同じ振る舞いに遭遇しました。解決策は、最終的に@ManagedBeanを@Namedに置き換えることでした。これまで、@ManagedBeanアノテーションのセマンティクスを理解していませんでした。だから私は何が違いを生むのか説明できません。

于 2013-02-05T13:06:19.517 に答える