Bean変数を設定し、ユーザートラフをイベントに設定するメソッドを呼び出す際に問題が発生しました。問題は、viewParamが動作している(私はページの値とそのBeanのセットを要求できる)が、イベントpreRenderComponent(またはpreRenderView)は起動しないということです。奇妙なのは、@ PostConstructでinitUserメソッドに注釈を付けると、はトリガーとなりますが、@PostConstructのトリガーになります。これは私が望むものではありません。しかし、注釈を削除しても、メソッドにはまったく入りません。JSF preRenderComponentイベントはトリガーされません
以下は私の.xhtml以下が私のbeanです。私はnetbeansとGlassfish(3.0)サーバを使用しています。私はここで間違って何をしていますか?
XHTML:
<f:metadata>
<f:viewParam name="userId" value="#{tweetBean.userId}" />
<f:event listener="#{tweetBean.initUser}" type="preRenderComponent" />
<f:event listener="#{tweetBean.initUser}" type="preRenderView" />
</f:metadata>
BEAN:
@Named
@RequestScoped
public class tweetBean implements Serializable
{
@Inject
private KwetterService service;
private String userId; // Has Getters + setters
public void initUser()
{
System.out.println("test");
for (User u : service.findAll())
{
if (u.getName().equals(userId))
{
user = u;
System.out.println("User found");
}
}
if (user == null)
{
System.out.println("no user found with this name");
user = service.find(0);
}
}
}
ViewScopedにスコープを変更する方法は? – Daniel
私はうまく動作しません、どちらもSessionScopedしません。しかし、私はRequestScopeを使い続けることを好み、RequestScopeでうまくいくはずです。 – user1312260
これまでに気付いていない...名前の代わりにManagedBean beanを作成しようとしています... – Daniel