JSF 2 应用程序中默认的托管 Bean 范围是什么?

2024-04-16

通常,默认范围是请求范围。我尝试删除作用域注释并期望 bean 具有请求 bean 作用域行为(通过返回上一页上提交的值,我记得我过去已经尝试过此操作并且工作正常),但我没有得到任何结果与其相连的表达语言。 那么默认范围是什么以及为什么它的行为不一样?!


取决于谁在管理 bean。

If it's JSF via @ManagedBean https://docs.oracle.com/javaee/7/api/javax/faces/bean/ManagedBean.html,那么它默认为@RequestScoped https://docs.oracle.com/javaee/7/api/javax/faces/bean/RequestScoped.html,正如在javadoc https://docs.oracle.com/javaee/7/api/javax/faces/bean/ManagedBean.html:

如果省略范围注释,则必须像处理 bean 一样处理 beanRequestScoped注释存在

If it's CDI via @Named https://docs.oracle.com/javaee/7/api/javax/inject/Named.html,那么它默认为@Dependent https://docs.oracle.com/javaee/7/api/javax/enterprise/context/Dependent.html,如中提到的焊接文档 http://docs.jboss.org/weld/reference/latest/en-US/html/scopescontexts.html#_the_dependent_pseudo_scope:

最后,CDI 具有所谓的依赖伪作用域。这是未显式声​​明作用域类型的 bean 的默认作用域。

效果是在每个 EL 表达式上新创建 bean 实例。因此,想象一个登录表单,其中有两个引用 bean 属性的输入字段和一个引用 bean 操作的命令按钮,因此总共有三个 EL 表达式,那么将有效地创建三个实例。一张设置了用户名,一张设置了密码,一张调用了操作。实际上,这与 JSF 的行为相同@NoneScoped https://docs.oracle.com/javaee/7/api/javax/faces/bean/NoneScoped.html。这证实了您所看到的症状。

If it's Spring via @Component http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Component.html,那么它默认为@Scope("singleton") http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Scope.html,如中提到的javadoc http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Scope.html#value--:

默认:"singleton"

实际上,这与 JSF 的行为相同@ApplicationScoped http://docs.oracle.com/javaee/6/api/javax/faces/bean/ApplicationScoped.html和CDI@ApplicationScoped http://docs.oracle.com/javaee/6/api/javax/enterprise/context/ApplicationScoped.html.

Netbeans 与此无关。它只是一个像记事本一样的编辑工具,但具有 1000 多个额外功能。

也可以看看:

  • 什么是无作用域 bean 以及何时使用它? https://stackoverflow.com/questions/3086896/what-is-none-scope-bean-and-when-to-use-it/
  • 如何选择合适的bean范围? https://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF 2 应用程序中默认的托管 Bean 范围是什么? 的相关文章

随机推荐

  • 当项目中有多个文件时,如何使用 Grunt 配置 LESS 的 sourceMap?

    我有多个 less 文件 我希望将它们处理为匹配的 css 每个文件的 sourceMaps 都与源位于同一文件夹中 这有多难 我用 less 直接执行此操作没有问题 但无法弄清楚如何在 grunt contrib less 中执行此操作
  • RESTful 设计:分页集合

    我正在设计一个 REST api 需要从服务器端强制执行分页 每个 x 翻阅任何资源集合的正确方法是什么 选项1 GET resource page
  • Swift @escaping 和完成处理程序

    我试图更准确地理解 Swift 的 闭包 But escaping and Completion Handler太难理解了 我查了很多Swift的帖子和官方文档 但感觉还是不够 这是官方文档的代码示例 var completionHandl
  • 如何向 Google 地图上的信息窗口添加组合框和按钮?

    目前 我正在开发一个应用程序 其中我必须在地图本身的单击事件上显示一个信息窗口 我的问题是我想在此信息窗口上显示一个按钮和一个组合框 我怎样才能做到这一点 您需要添加自定义UIView给你的MK地图视图并抑制默认值MK注释标注视图 您的定制
  • 在 Chrome 中无需右键单击即可检查元素

    When I inspect html css on a website I usually open the chrome developers panel ctrl shift I right click context menu in
  • 如何通过着色器管道传递顶点颜色?

    我试图通过顶点 几何和片段着色器传递顶点颜色 glBegin GL POINTS glVertex3f 2 0f 0 0f 0 0 glColor3f 0 0 1 0 0 0 glVertex3f 2 0f 0 0f 0 0 glColor
  • jQuery while 循环不等待动画

    我有一个 jQuery 函数可以执行以下操作 clone 在一个物体上 然后 insertAfter and a slideDown 在克隆的对象上 整个函数被包装在一个while环形 我将尽可能简短并展示一个通用示例 while stat
  • 将函数应用于不包括按值嵌套的数据表子集

    我有一个与此相关的问题 我之前曾问过 从 foreach 循环赋值 https stackoverflow com questions 18767016 assignment of a value from a foreach loop 1
  • Laravel 5 调整图像大小

    我使用 Laravel 5 并有一个上传图像的表单 保存文件时 我在控制器方法中获取图像并将其放入目录中 if request gt hasFile picture destinationPath uploads filename imag
  • jQuery-tokeninput 失败:“term”未定义?

    在我的 Rails 应用程序中 我尝试使用 jquery tokeninput 我一切正常 json 响应和所有 但当在标记化字段中输入任何内容时 脚本会出错 并抱怨 TypeError term is undefined gt retur
  • 如何阻止 Maven 覆盖资源文件

    我有默认的 Maven 结构 main java resources webapp 我看到每个mvn compile复制资源 即使它们没有改变 我应该怎么做才能仅复制更改的文件
  • 无法以管理员身份运行

    我必须执行ewfmgr exe仅当以管理员身份打开命令窗口时才能执行 如果我去Start gt type cmd exe gt Right click gt Run as Administrator然后出现以下命令提示符窗口 在这个窗口中
  • SQL 查询查找具有最匹配关键字的行

    我真的不擅长 SQL 我想知道我可以运行什么 SQL 来解决下面的问题 我怀疑这是一个 NP 完全问题 但我可以接受查询需要很长时间才能在大型数据集上运行因为这将作为后台任务完成 首选标准 SQL 语句 但如果需要存储过程 那就这样吧 SQ
  • Ruby - 如何在 Prawn 中使用不同的字体?

    我有一个小型 Rub y 程序 我使用 Prawn 将一些文本打印到 PDF 中 但一小部分文本是非英语字符 其中一些文本是中文 一些是希腊文 等等 当我运行我的程序时 我当然会收到一条错误消息Your document includes
  • StructureMap通过注入解决依赖而不是服务定位

    在我的项目中我注册了很多ISerializers使用装配扫描仪的实现 FWIW这是注册我的代码ISerializers Scan scanner gt scanner AssemblyContainingType
  • 在箱线图中标记散点图点以及R中图形中箱线图的摘要

    祝大家好 我需要帮助找到在箱线图中标记散点图的解决方案 如下图所示 有两个数据 第一个是所有宏观宇宙的数据 第二个是每个宏观宇宙的平均值 Tab1 查询结果 1 2 3 4 5 6 1 13 2089 13 3161 13 2497 13
  • Tcl 脚本中错误的静态检测

    我已经开发了一些代码 并且在 Linux 机器上遇到了 Tcl 解释器错误标记的问题 usr bin tclsh if 1 puts abc1 elseif puts abc2 上面的代码没有标记错误 elseif 条件 直到进入elsei
  • 目前可用于 python3 上带有 Flask 的 websocket 的最佳选择[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目前我看到以下库可用于将 websockets 与 Flask 一起使用 烧瓶插座 https gith
  • 将图像 ( png ) 转换为矩阵,然后转换为一维数组

    我有 5 张图片 我想将每个图像转换为一维数组 并将其作为向量放入矩阵中 我希望能够再次将每个矢量转换为图像 img Image open orig png convert RGBA a np array img 我不熟悉 numpy 的所
  • JSF 2 应用程序中默认的托管 Bean 范围是什么?

    通常 默认范围是请求范围 我尝试删除作用域注释并期望 bean 具有请求 bean 作用域行为 通过返回上一页上提交的值 我记得我过去已经尝试过此操作并且工作正常 但我没有得到任何结果与其相连的表达语言 那么默认范围是什么以及为什么它的行为