bdf2点击菜单后,如何给打开页面的context赋值?

我们的系统,可以管理多个项目。用户可以在这些项目中切换,并设置一个当前项目。(在MainFrame页面上加一个label显示当前项目名称)
 
目前我们采用的方式是:切换项目后,在session范围写入当前项目id。代码:
ContextHolder.getHttpSession().setAttribute("currentProjectId", projectBasicInfo.getId());
这样有一个问题,用户在同一个浏览器的两个选项卡中,会出现对不上的情况。具体为:
用户先设置项目A为当前项目,然后新开一个选项卡,选项卡2,设置项目B为当前项目。此时再返回到选项卡1时,虽然页面上显示的当前项目是A,但是操作时,后台java代码:
String projectId = (String) ContextHolder.getHttpSession().getAttribute("currentProjectId");
获得的其实是项目B。
 
现在我得知,可以在前台view.xml文件中,通过:
view.get("context").set("currentProjectId", "xxxxx");
操作上下文,并在后台java代码中,通过:
DoradoContext.getCurrent().getAttribute(DoradoContext.VIEW, "currentProjectId");
获取到值。
但是这样只能操作MainFrame页面,点击左侧菜单后,右侧是弹出的IFrameTab,是另一个页面。
 
我想咨询一下:能否在打开右侧IFrameTab时,获取到它的view,这样就可以赋值。
或者有没有其它方案解决“切换项目并设置当前项目”。
谢谢!
已邀请:

qq313687396

赞同来自:

建议打开子页面时url中加入projectid信息,子页面context中添加属性并通过EL表达式设置值

要回复问题请先登录注册