【问题标题】:JSF 2.0 communication between two @ViewScoped, Inject两个@ViewScoped、Inject 之间的 JSF 2.0 通信
【发布时间】:2013-04-16 23:26:36
【问题描述】:

两个@ViewScoped Managed Bean 之间的通信存在很大问题。 以下清单显示了我这样做的方式。 UserAddEditMB 被注入到 UserSearchMB 并在用户单击带有 onAdd 操作的按钮后,它调用 UserAddEditMB init 方法。 最后我的第二种形式有导航规则,但是 u1 nad u2 为空。

这是在两个 @ViewScoped 托管 bean 中执行通信的好方法吗?

@ManagedBean
@ViewScoped
public class UserSearchMB {

@ManagedProperty(value ="#{userAddEditMB}")
private UserAddEditMB userAddEditMB;

public void onAdd(){
    userAddEditMB.init(String param1, String param2);
    return "userAddEdit";
}
...
}


@ManagedBean
@ViewScoped
public class UserAddEditMB {

private String u1;
private String u2;

public void init(String param1, String param2){
    this.u1 = param1;
    this.u2 = param2;
}
....
}

【问题讨论】:

标签: jsf communication managed-bean view-scope


【解决方案1】:

我发布作为答案是因为评论太小。 您可以尝试从 UserAddEditMB 获取 UserSearchMB:

FacesContext context = FacesContext.getCurrentInstance();
UserSearchMB test= (UserSearchMB) context.getApplication().evaluateExpressionGet(context, "#{userSearchMB}", UserSearchMB .class);

【讨论】:

  • 请先自己试验一下,然后再作为答案发布。
猜你喜欢
  • 2013-09-27
  • 1970-01-01
  • 2018-06-05
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 2012-06-26
相关资源
最近更新 更多