问题标签 [backing-beans]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ajax - 支持 bean 范围如何工作?
我对 JSF 支持 bean 范围有一些误解。我是 JSF 的新手,现在正在编写一个简单的项目,我所有的 bean 大多都有会话范围。但是,如果我的站点将有很多用户,这意味着我的会话将非常大并且会杀死我的服务器。有人告诉我解决方案是使用请求范围 bean。但是,例如,当我的页面必须验证并且验证失败时显示错误消息并保存所有用户输入,在这种情况下我该怎么办?我正在尝试使用使用 AJAX 请求的组件,并希望我的请求 bean 不会被重建,但这不起作用(我正在使用<rich:datascroller>
)。
我认为我对 JSF 的理解有很大的漏洞,如果有人解释在这种情况下我必须做什么,或者在一些关于 bean 范围的好文章上链接我,我将不胜感激。
jsf - JSF 会话 bean 最佳实践
我正在开发一个在海外编写的 JSF 应用程序,它存在一些性能问题。
我一直试图理解为什么应用程序可能运行缓慢,并且我注意到每个支持 bean 都是会话范围的,并且许多 bean 使用其他 bean,因此它们可能都被实例化了。
可能有 40 个支持 bean,每个都包含大约 4000 行代码和许多移动部件。
有人可以确认或否认我的预感,即每个会话中的所有这些废话都会使应用程序变得迟缓吗?
jsf-2 - 在 JSF 页面中重用同一类的多个 CDI @Named bean 实例
我想在 JSF2 页面中使用同一个 CDI 命名 bean 的多个实例。(想象一下,我有一个支持 bean 来访问 contentmanager 类别,但我想在同一个 JSF 页面中显示多个类别)我想知道如何“覆盖”@Named 注释的默认名称,以便我可以拥有这 3 o 4 个实例在我的页面中。(¿记住旧的 JSP“useBean”标签在页面中使用 bean...您可以通过这种方式使用同一类的多个实例)我搜索过 beans.xml,但没有找到。我可以使用旧 faces-context.xml“托管 bean”条目吗?不知道这是否适用于 CDI @Named bean 或只能用于旧的非 CDI 托管 bean。
感谢您提供任何信息,伊格纳西奥
session - 处理 jsf 会话和浏览器刷新
我正在用 JSF 1.2 编写一个应用程序,它在支持 bean 中有一个会话。最大的稳定性问题发生在用户刷新页面(按 F5)或使用浏览器中的后退箭头返回时。
我想要一些“聪明”(知识渊博)的方法来克服这个问题。
我得到的最常见的异常是刷新后,用户将尝试继续使用应用程序并会得到:
在浏览器中。
谢谢!
ajax - JSF:在 backingBean 仍在工作时显示页面
也许这个标题并不准确,但问题就在这里。我正在做一些 JSF 项目,我需要以下内容:
当用户登录我的应用程序时(即当他导航到主页时),需要调用一个从互联网和/或数据库获取一些货币汇率的方法。该方法的执行(页面解析、数据保存等)持续大约 5-6 秒。我不希望从登录到主页的导航持续 5-6 秒,我希望其中之一(尚未决定哪一个)发生:
1)当用户登录时,他会看到主页(立即,而不是在 5-6 秒后),并且能够在方法在后台运行时单击和/或导航。
2)当用户登录时,他(立即)看到主页,页面的一部分有一些加载标志,在执行方法后,他看到带有汇率的dataTable。
问题是,如何做到这一点?如果我将该方法放在 HomePageBean 构造函数中,则在执行方法之前不会显示页面。也许我可以在主页上放置一些不可见的元素并在一些 Getter 中调用该方法,但我不知道这是否是正确的方法(似乎是 hack)或者它是否真的有效。
我正在使用 JSF 2.0 和 Primefaces。提前致谢
jsf - JSF 托管 bean
大家好,
我对这一切都很陌生,这可能是一个愚蠢的问题,但是
我有一个托管 bean,它有一个属性花 - 字符串和一个属性列表 - 花束
在 xhtml 中,我有一个 h:inputText,你应该输入一个花名,当你点击 ah:command 按钮时,它会调用一个动作#{managedBEan.addFlower},在 addFlower 中我想添加用户输入的花名和添加到列表中 --- 我正在使用 ah:form
但是当我单击按钮时,jsf似乎没有调用属性的set方法,花属性的值为null,就像她被声明一样
谢谢你的建议,亚历克斯
jsf - 托管 bean 和支持 bean 之间的区别
我在几个论坛中遇到了术语“托管 bean”和“支持 bean”。很多人认为两者是一样的。但是,似乎有细微的差别。任何人都可以帮助我理解这两个术语之间的确切区别吗?
jsf - JSF:数据更改后重新加载页面
使用 a DataModel<MyObject>
,我根据此响应填写数据表
现在在每一行的末尾我有一个删除按钮,它调用我的 bean 的某个方法。数据被彻底删除。但由于删除后数据已更改,我想重新加载页面以反映更改。
我的尝试是在以下位置添加导航规则faces-config.xml
:
概述 /overview.jsp 已删除订阅 /overview.jsp
如果我有<redirect />
或没有,无论哪种方式,它都不会重新加载或做任何其他事情。数据被删除,因此实际调用了 bean 的方法。
我的按钮如下所示:
设置属性type="submit"
实际上解决了问题。页面被重新加载。
我现在的问题是:真的需要提交吗?JSF (Apache MyFaces) 不是有一些使用 AJAX 来消除刚刚删除的行的机制吗?
感谢您尝试帮助 JSF 新手。
java - ViewScope 构造函数调用了两次,不知道为什么
我已经看到有关调用 bean 构造函数和 ViewScope 的其他问题,但我仍然遇到困难。我看到的问题涉及我的应用程序中的两个特定页面。第一个是一个数据表(现在它填充了随机生成的数据,但最终会调用一个数据库),第二个页面是一个相当简单的显示页面,其中来自所选行的信息以表格形式显示以供编辑或查看 -这是我的detail.xhtml
页面。这个页面的 bean 才是问题所在;它的构造函数被调用了两次:第一次当我导航到页面时,再次当我按下commandButton 提交更改或取消更改无关紧要时,第二次调用detail.xhtml 支持bean 的构造函数。
我的 bean 是@ViewScoped
,正在导入javax.faces.bean.ViewScoped
。其他一些可能会产生影响的细节,但如果他们这样做,我不明白为什么:我的 UserDetailBean.java 继承自一个基本 bean(我最初称之为 UIBaseBean.java)。现在,我的 UIBaseBean 是@RequestScoped
. 据我了解,这不应该有所作为,因为我的 UserDetailBean 是@ViewScoped
,如果我错了,请纠正我。
另一个可能产生影响的细节是 UIBaseBean 和 UserDetailBean 的构造函数中的变量设置。我想在页面顶部的工具栏中显示用户的位置。为此,我在 UIBaseBean 中创建了一个变量:
我还在 UIBaseBean 中提供了 setter 和 getter。在 UIBaseBean 的构造函数中,我定义了变量:
该定义只是为了让我知道为我的应用程序中的任何特定页面覆盖支持 bean 中的变量。在我的 UserDetailBean 中,我为字符串工具栏描述分配了一个新值。此值显示在 detail.xhtml 页面上。否则,我的 detail.xhtml 页面的 bean 非常简单,它获取和设置用于在 detail.xhtml 页面上的表单中显示数据的属性。
详细信息页面已设置,因此导航到它会通过重定向发生,而导航离开(按下 commandButton 时)会通过重定向发生。我尝试过使用有和没有重定向的 faces-config 导航规则,以及有和没有重定向的隐式导航,但是 UserDetailBean 构造函数总是被调用两次。
哦,我在我的 UserDetailBean 构造函数中的 toolbarDescription 变量上设置了一个断点,这会停止程序两次:第一次调用页面时,以及在详细页面上按下 commandButton 后再次停止。
根据我的描述,谁能告诉我为什么我的构造函数被调用了两次?我是否错误地设计了我的 bean,或者问题在我的应用程序中更深层次?
jsf - JSF 不更新某些支持 bean 属性
我正在一个项目中使用 JSF 2.0 和 PrimeFaces 2.2 。目前我们正在使用一个向导(PrimeFaces 组件)来指导用户完成注册过程。我们在向导中有 4 个步骤。
这就是问题所在:在第一步中,用户输入了他/她的个人详细信息,并且在支持 bean 中得到了正确更新。第 2 步只是一堆文本,第 3 步提供了另一种形式来输入额外信息。
但是在第 3 步中,支持 bean 中的数据没有更新,并且属性保持为空。我尝试了一些解决方法,但没有任何改变......
好吧,这里是代码的相关部分:
这是从视图和支持bean:
我已经用尽了所有可能的解决方案......所以,如果有人至少有一个模糊的想法,那么它是有效的。谢谢!