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

相关文章

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

【Vue】关于Vue3的生命周期

目录 Vue3中新增了一个setup生命周期函数:(1) setup执行的时机是在beforeCreate生命周期函数之前执行,在setup函数中是不能通过this来获取实例的;(2) 为了命名的统一性,将beforeDestroy 改名为 beforeUnmount,destroyed 改名为 unmounted 生命周期函数: setup —— 不能通过this来获