JSF2.0中的managed bean生命周期

2024-02-15 09:58

本文主要是介绍JSF2.0中的managed bean生命周期,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

@RequestScoped(默认生命周期)

为每一次request请求,new一个实体

 

在实际应用中此周期也为form中的input进行初始化。即:他会被实例化两次1,表单form被展现时。2,表单被提交时

 

其实可以简单的理解为它生存在 request域里。我发现 commandButton是forword不是redirect的。地址栏没有发生变化。

比如在a.jsf 提交表单地址栏不会变但是页面是b的页面,如果此时又要提交表单 action 就会到下一个页面c,但是地址栏是b的。

 

是意味着本表单页面的bean如果是requestScope则下个页面也会取到,地址栏没变就意味着没有重定向,没有销毁request。

 

@SessionScoped

顾名思义就是和session一样的生命周期,不过注意此时managed bean必须被序列化implements Serializable

 

@ApplicationScoped

不想多说,注意两点1,数据安全,即不想被公布的数据不要放入此域。2,注意线程同步的问题(因为可能会有很多用户同时操作)。

 

@ViewScoped(jsf2.0新增的域)

官方解释是:同一用户,相同的页面,相同的bean数据。即我的view视图没变我的bean就在。同样需要被序列化implements Serializable

常应用于 event handlers 或者 ajax中。每次even发生被捕获了,的确是刷新了页面,但是在默认scoped情况下数据也被保留了下来,ajax更不用说了,我真的不知道viewScoped到底有什么用。

哦!我发现原因了,

jsf2.0有两种listeners。

1,actionListener ,(buttons,hypertext links,image maps)

自动提交表单

2,valueChangeListener,(radio button,comboboxe,list boxes,checkboxes,textfields)

οnclick="submit()" 或者οnchange="submit()"才可以提交form

关于属性immediate的作用还是不太清楚。好像是跳过验证直接提交。

(关于此处的疑问已于下一章“JSF2.0中的managed bean生命周期(补充)”中得到初步理解解决)                                                                                                                              

 

@CustomScoped(value="#{someMap}")   (jsf2.0新增的域)

bean被存在Map,由程序来控制其生命周期

 

@NoneScoped

不存放在域中,即不可被JSF el直接访问。此时bean只是作为其它bean的一部分,被注入对象。

这篇关于JSF2.0中的managed bean生命周期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711077

相关文章

相同的生命周期

1.保证相同的生命周期 bool GameOverLayer::init()   {       if (CCLayerColor::initWithColor(ccc4(0, 255, 0, 255))){              _label = CCLabelTTF::create("word", "Artial", 40);              CCSize size = CC

spring的bean加载

我们经常使用Spring,并且也都了解其大概原理。我想我们一定会对Spring源码的解读有迫切的渴望。 我也如此。所以,我打算阅读一下Spring的源码。再此之前,我也为此准备了很多。包括,去复习熟练java反射,理解常用的设计模式。当然,这些复习笔记也会在今后的复习中顺便记录在我的csdn博客。(当然,可能写的不好,也可能理解不正确(可以一起交流嘛)。但是乐于分享总归是好的。)

Java面试题:内存管理、类加载机制、对象生命周期及性能优化

1. 说一下 JVM 的主要组成部分及其作用? JVM包含两个子系统和两个组件:Class loader(类装载)、Execution engine(执行引擎)、Runtime data area(运行时数据区)、Native Interface(本地接口)。 Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)装载class文件到Runtim

Spring的IOC、Spring对象初始化bean时机、Spring容器生命周期

IOC指的是控制反转,把对象的创建、初始化、销毁等工作都交给Spring容器。由spring容器来控制对象的生命周期。 Spring对象初始化bean时机: 在默认情况下,只要在Spring容器中配置了一个bean,容器在启动时就会实例化该bean,单例模式。 如果在Spring配制文件时设置懒加载模式(lazy-init=”true”),在getBean时才会实例化对象。

Vue.JS中如何监听生命周期事件?

目录 一、Vue.JS框架介绍二、Vue.JS的监听事件三、Vue.JS的生命周期事件四、Vue.JS中如何监听生命周期事件 一、Vue.JS框架介绍 Vue.js是一个用于构建用户界面的渐进式JavaScript框架。它设计得非常灵活,可以轻松地被集成到现有的项目中,也可以作为一个完整的前端解决方案来使用。Vue.js的核心库只关注视图层,这使得它非常容易学习,并且与其

spring的基础知识----Spring的Bean有两种基本行为

Bean是spring窗口的最基本单元 Bean有两种基本行为: Singleton:单态 non-Singleton 或ProtoType原型 如果如non-Singleton行为时Spring只负责使用new关键字创建一个Bean实例,一旦创建后,容器不再负责Bean的实例状态和跟踪实例; 在Web应用的控制器Bean配置成non-Singleton行为,因为每次Ht

Spring Bean 的作用域

在 Spring 框架中,Bean 是构成应用程序的重要组成部分。Spring 容器负责管理这些 Bean 的生命周期和配置。为了满足不同场景的需求,Spring 提供了多种 Bean 作用域(scope),即 Bean 在容器中的生命周期和可见范围。本文将详细介绍 Spring Bean 的作用域及其应用场景。 一、什么是 Bean 作用域 Bean 作用域定义了 Bean 在 Spring

【vue3|第13期】深入了解Vue3生命周期:管理组件的诞生、成长与消亡

日期:2024年6月22日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 说在最前面:本文

vue 中监听生命周期事件

vue 中监听生命周期事件 常见的添加自定义事件的写法希望在子组件挂载时通知父组件在模板上监听组件生命周期vue3 有类似的写法吗?jsx 中如何监听 vue3 组件的生命周期事件呢? vue3 父组件组件的生命周期的执行顺序是什么?小结 vue2 提供了一些生命周期事件的方式,可以在组件销毁时执行一些操作。 命名为 hook:lifeHook ,比如 hook:beforeD

Spring之IOC、DI、Bean注入创建获取详解

目录 1 IOC 1.1 IOC– 控制反转 Inversion of Control 1.2 DI-依赖注入Dependency Injection 1.3 Bean的依赖注入方式 1.3.1 属性注入 1.3.2 setter方法注入 1.3.3 构造方法(构造子)注入 1.3.4 接口注入 1.3.5 Spring三种注入不推荐使用@Autowired  1.4 Bean