私はWebアプリケーションを作成しており、JSF 2.0と休止状態3.5を使用しています。私の問題は、注入されていないBeanを注入したいときです。第二のクラスは、休止状態のためのインターセプタクラスですJSF @ManagedPropertyが注入されていません
@ManagedBean(name="triggerBean")
@SessionScoped
public class Trigger extends EmptyInterceptor {
@ManagedProperty(value="#{permissionBean}")
public PermissionBean pb;
public void onDelete(..) {
pb.test();
}
public void setPb(PermissionBean pb) {
System.out.println("______setting bean");
this.pb = pb;
}
}
:この中へ
@ManagedBean(name="permissionBean", eager = true)
@SessionScoped
public class PermissionBean {
private List<Role> rolesList;
public PermissionBean(){
refresh();
}
private void refresh(){
rolesList = Role.queryRolesList();
}
public void test(){
System.out.println("__________TEST ");
}
//getter setter for the rolesList
}
:
これは私が注入したいクラス(私は唯一の重要な部分をコピーした)です。プログラムが起動して動作しているので、PermissionBeanが作成されていると確信しています。その中にメソッドを使用していますので、リストが表示されています。しかし、私はそれを削除しようとすると、onDelete()
関数のトリガは、私はpb.test()
を呼び出す行()でnullポインタの例外を得た。いくつかの試行の後、私はテストをsetterに書き出しますが、そのメソッドは呼び出されません。