`

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)

onclick="submit()" 或者onchange="submit()"才可以提交form

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

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

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

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

@NoneScoped

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

分享到:
评论

相关推荐

    jsf2.0版本helloworld

    3. **编写Managed Bean**: 创建一个简单的Java类,例如`HelloBean.java`,并使用`@ManagedBean`和`@RequestScoped`注解标记为JSF管理的bean。在这个bean中定义一个返回"Hello, World!"的属性或方法。 4. **创建...

    Mojarra JSF2.0库文件

    6. **Managed Bean的生命周期改进** - 添加了@PostConstruct和@PreDestroy注解,方便控制Bean的初始化和销毁。 7. **CDI(Contexts and Dependency Injection)集成** - JSF 2.0集成了CDI,提供了依赖注入功能,使得...

    jSF2.0与Spring整合实例+教程

    4. **Managed Beans**:JSF 2.0 中的 Managed Beans 是业务逻辑的主要载体,它们可以被注入到页面组件中,实现数据绑定。 5. **EL(Expression Language)**:JSF 支持EL,允许在页面中直接引用Managed Bean的属性和...

    JSF2.0源代码

    4. **ManagedBean**和**ManagedProperty**:这些注解用于声明和注入JavaBean,是JSF 2.0中依赖注入的基础。 5. **Validator和Converter**:用于数据验证和类型转换,确保输入的数据符合预期。 6. **ViewHandler**...

    jsf2.0实例

    - **生命周期**:JSF有明确的请求处理生命周期,包括初始化、应用请求值、处理验证、更新模型值、调用后处理方法等阶段。 **2. JSF 2.0 的主要特性** - **Faces Flow**:引入了Flow的概念,允许创建更复杂的导航...

    JSF2.0基本环境

    在这个环境中,我们将深入探讨JSF2.0的基础知识,包括它的核心概念、组件模型、生命周期以及如何进行基本的环境搭建。 1. **JSF2.0概述** - JSF2.0是Java EE 6规范的一部分,它提供了一个声明式的方式来创建用户...

    jsf 2.0官方参考手册

    JSF 2.0集成了Java EE的依赖注入(DI)功能,通过@ManagedBean和@Inject注解,可以方便地管理组件和服务之间的依赖关系。这使得代码更易于测试和解耦,同时降低了组件间的耦合度。 **四、请求处理和生命周期** JSF ...

    JSF2.0的一个简单Demo

    在JSF2.0中,Managed Beans的生命周期管理得到了改进,支持注解驱动的配置,使得Bean的声明和初始化更加简洁。同时,支持了CDI(Contexts and Dependency Injection)集成,使得依赖注入变得更加方便。 **JSF2.0的...

    jsf2.0 tutorial.rar

    在JSF 2.0中,这一理念得到了进一步强化,增强了可扩展性和灵活性。 2. **JSF生命周期** JSF应用遵循一套预定义的生命周期,包括初始化、恢复视图、应用请求值、处理验证、更新模型值、调用应用逻辑、渲染响应等...

    JSF 2.0 .3 lib 官方发布包

    1. **Facelets作为默认视图层技术**:在JSF 2.0中,Facelets替代JSP成为默认的视图表示语言。Facelets提供了更强大的模板和组件重用能力,使得页面结构更清晰,代码更易于维护。 2. **Managed Beans的改进**:JSF ...

    jsf 2.0(jar+源码+api+新特性示例)

    - 创建一个CDI Managed Bean,并在JSF页面中使用`@Inject`注解注入该Bean。 5. **Faces Flow示例**: - 设计一个包含多个步骤的复杂流程,并使用Faces Flow进行管理。 **五、学习资源** 为了更好地掌握JSF 2.0...

    JSF 资源 managed bean 课件

    - **Managed Beans**:在JSF中用于封装业务逻辑的对象,这些对象由容器管理其生命周期。 #### 二、Managed Beans的作用 - **存储请求参数**:用于存储表单提交的数据。 - **存储结果数据**:存储来自业务逻辑的数据...

    JSF2.0-hello-world-example-2.1.7.zip

    在JSF中,这类bean通常用`@ManagedBean`和`@RequestScoped`注解标记,以便JSF能够管理和实例化它们。 - **后端逻辑**:在managed bean中,可能会有一个方法处理用户的提交,比如一个名为`sayHello()`的方法,该方法...

    JSF2.0+Spring+Hibernate实例代码

    例如,通过Spring的`@ManagedBean`和`@RequestScoped`注解可以创建JSF可访问的bean,同时利用Spring的IoC容器管理这些bean的生命周期和依赖关系。 **Hibernate**是一个流行的Java ORM(对象关系映射)框架,它允许...

    JSF2.0实战 - 1-3、Hello World,AJAX体验,onPageLoad

    这样,`beforePhase`和`afterPhase`方法就会在相应的JSF生命周期阶段被调用,你可以在此处执行任何需要在页面加载时运行的逻辑。 通过以上讲解,我们对JSF 2.0的"Hello World"程序、AJAX功能以及如何模拟`...

    JSF2.0_the_full_reference

    - **生命周期(Lifecycle)**:JSF具有明确的请求处理生命周期,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用程序和渲染响应等阶段。 - **表达式语言(EL)**:JSF的表达式语言允许在页面中引用托管...

    jsf2.0源碼(myfaces2.0.4 api+impl)

    - **ManagedBean**: JSF中的可管理bean,用于存储业务数据和逻辑。 - **EL (Expression Language)**: 提供了表达式语言,用于在页面上绑定和操作bean属性。 - **Converter**: 用于数据类型转换,确保页面输入和...

    JSF2-Getting-Started.zip_Getting Started

    在JSF2.0中,可以使用`@ManagedBean`和`@ViewScoped`等注解轻松创建和管理Bean。例如: ```java import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; @ManagedBean @ViewScoped public ...

    JavaServer Faces API (2.0)

    3. ** Managed Beans**:在JSF 2.0中,Managed Beans成为了主要的业务逻辑容器。它们是简单的Java类,可以通过注解(@ManagedBean, @ViewScoped, @SessionScoped等)来配置和管理。这使得声明式依赖注入成为可能,简化...

Global site tag (gtag.js) - Google Analytics