【发布时间】:2012-08-07 19:12:45
【问题描述】:
这是我正在尝试做的一个例子。
在 sessionScoped bean 中
SessionBeanloadRecord(){
Do something
ViewScopedBean viewScopedBean = (ViewScopedBean) context.getApplication().evaluateExpressionGet(context, "#{viewScopedBean}", ViewScopedBean.class);
return viewScopedBean.viewScopedBeanLoadRecord();
}
在 viewScoped bean 中
ViewScopedBeanloadRecord(){
Retrieve and populateFields
return "viewRecord.xhtml";
}
因此,简而言之,我想从另一个视图 (listRecords.xhtml) 上的另一个 bean 调用视图范围 bean 中的一个方法。 当我运行它(仅使用标准命令链接)时,会话 bean 会按预期工作,创建 viewScoped bean 并调用 ViewScopedBeanloadRecord 方法但是然后重新创建 viewScoped bean(再次调用构造函数)但这次是 ViewScopedBeanloadRecord未运行,页面加载空白字段。
我了解视图范围的 bean 仅在您返回 null(或具有 void 方法)以保持在同一视图上时才有效,但是您如何从 listRecords.xhtml 转换到 viewRecord.xhtml 并运行加载方法?
一旦我进入 viewRecord.xhtml 视图,我还需要同时加载更多记录(在不同的浏览器窗口中),因此我无法将记录保留在会话中。
请注意:根据公司政策,我不允许发布实际代码,所以这个示例仅限于我。对不起!
任何帮助将不胜感激!
谢谢
埃里克
【问题讨论】:
标签: java jakarta-ee jsf-2