首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用子类重写会话作用域托管Bean

用子类重写会话作用域托管Bean
EN

Stack Overflow用户
提问于 2013-11-26 17:35:18
回答 1查看 996关注 0票数 1

在JSF1.2应用程序中,我可以覆盖一个子类返回的会话范围托管Bean吗?

类结构

我有一个会话作用域托管Bean,MainViewMB和它的子类RestrictedViewMB

faces-config.xml

代码语言:javascript
复制
<managed-bean>
  <managed-bean-name>mainViewMB</managed-bean-name>
  <managed-bean-class>com.example.MainViewMB</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

问题陈述

EL表达式#{mainViewMB}返回一个MainViewMB实例。

我希望用#{mainViewMB}实例重新绑定名称RestrictedViewMB,以便EL表达式#{mainViewMB}返回会话其余部分的子类实例。

有办法实现我的目标吗?

激励示例

MainViewMB处理应用程序主页后面的图形用户界面逻辑。当用户从专用登录页面进入应用程序时,我需要提供一个受限制的、简化的主页视图。在子类中覆盖MainViewMB的一些属性似乎是显而易见的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-26 17:47:06

在你可以/需要做的时候手动做它。

代码语言:javascript
复制
externalContext.getSessionMap().put("mainViewMB", new RestrictedViewMB());

这将在会话作用域中使用名称为RestrictedViewMB的新实例mainViewMB,从而有效地使其成为会话范围内的托管bean。

您只需要考虑到托管属性和@PostConstruct/@PreDestroy不是以这种方式调用的,您还必须手动调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20224092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档