问题标签 [managed-bean]
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.
jsf - 我应该使用什么托管 bean 范围?
我有 3 个不同的页面,我在其中使用用户列表。
第一页包含来自一个会话范围托管 bean 的用户的数据表。在该页面上,我可以更改选定的用户详细信息。
第二页还包含带有用户的数据表,但来自不同的会话范围 bean。在此页面上,我也从 dataTable(用户列表)和数据库中删除了用户。
我意识到这不是一个好主意,因为如果我对一个用户进行了更改,那么这些更改将不会显示在我删除用户的页面上。
仅具有用户列表的应用程序范围 bean 是解决方案吗?
jsf - 如果 ManagedBean 在 jar 库中,则 JSF 不会调用 @PostConstruct
我正在运行以下问题。
目前,我有一些托管 Bean 在两个 JSF 应用程序之间共享。由于我不想在两者中复制和粘贴代码(将来会更多),我已将此共享托管 bean 放入 JAR 库中。我关注了这个博客:http: //jsflive.wordpress.com/2011/03/24/custom-component-library/
好吧,即使我将 faces-config.xml 放在 JAR/META-INF/ 中,@ManagedBean 和 @ViewScoped 也不起作用。我不知道为什么,但是如果我在 faces-config.xml 中注册 bean(JAR 的,而不是 WAR 的)这个问题就消失了。
我可以忍受这个,但令我惊讶的是,在 JAR 库中没有为这个托管 bean 调用 @PostConstruct 注释。我没有收到任何错误、警告或其他信息。我想 bean 正在加载,但它们的注释没有被处理。
有没有人遇到过这个?
我的环境:Glassfish 3.1.1 (build 12) JSF 2.1.3
提前致谢。
java - 使用 URL 参数的 JSF 托管 Bean 方法调用
我有一个支持我的网络应用程序的 Session Scoped 托管 bean。在这个网络应用程序中,我希望用户能够执行包含用户 ID 和日期的 URL。然后这将触发托管 bean 中的一个方法,并将 Web 应用程序跳转到该用户 ID 和日期。
简单的答案是将用于从 URL 中提取参数的代码放在托管 bean 的构造函数中。但问题在于它是 Session Scoped 的,所以构造函数只在初始加载时被调用。如果用户打开 web-app 并对其进行操作,然后使用新参数执行 URL,则无法调用构造函数。
无论会话状态如何,每次执行应用程序 URL(每次加载页面)时,是否有某种方法可以在托管 Bean 上执行方法?
jsf - 如何从 JSF 2 ManagedProperty 引用 Java Collection 条目?
我有一个应用程序,它有一个 bean,其中包含一个联系人列表,这些联系人是从整个应用程序中的各种域对象引用的:
可以contactsList
从各种 JSF 页面创建和添加联系人,并且此列表中的条目需要在整个应用程序的各种域对象中作为 ManagedProperty 引用。例如,看看我的一些域对象:
因为用户可以选择从现有联系人中进行选择,或者为每个域对象创建一个新联系人,contactsList
所以可以从多个域对象中引用相同的联系人条目。有没有办法在 JSF 2 中引用/注入特定的 Java 集合条目作为 ManagedProperty?还是有更好的方法来处理这种情况?
谢谢!
jsf - How to inject different subclasses as ManagedProperty JSF 2?
I'm new to JSF and I'm wondering if it's possible to inject different subclasses of a base class as a MangedProperty, depending on different situations? For instance, I have this managed bean:
And the following base class:
Which has two subclasses:
Depending on selections that are made on my application's JSF pages, I want to inject one of the subclasses as the lossDetails
ManagedProperty in the Claim
managed bean. Since I can't give the two subclasses the same managed bean name and I don't know ahead of time which one needs to be injected, is this something that can be accomplished in JSF? Or is there a different approach I should be considering?
Thanks!
java-ee-6 - 豆子,豆子,还有更多的豆子……什么做什么?
我最近接到了一个涉及编写 Web 应用程序的项目。我以前从未做过 Java EE。网络上的很多资源都过时了,我无法弄清楚各种标准和 Java 技术之间的当前差异。
最初我认为由于依赖注入、JPA、会话管理和 Web 服务,我真的需要 EJB 3.1。我开始尝试 Glassfish,但被告知我们必须在 Tomcat 中编写。所以我一直试图弄清楚我需要什么以及如何将什么以及如何放入 Tomcat 中才能到达那里。我开始怀疑我是否需要 EJB。
我想,我想将 JFS 用于 MVC 架构。在了解这一点时,我遇到了 ManagedBeans 和 CDI,根据一些人的说法,这使得前者已经过时,而且似乎还提供了我想要启用单元测试的所有依赖注入东西。我也开始意识到我可以在 EJB 之外以 Hibernate 和其他一些形式获得 JPA。此外,我不知道我是否需要的 Web 服务似乎以另一种标准的形式出现,我现在想不出这个名字,这也可以独立安装。
我的主要问题是会话管理和状态。在我看来,EJB 剩下要做的就是提供@Stateless/@Stateful 和@Local/@Remote。但是,据我了解,其中一些已经以 servlet 容器中的会话管理的形式存在......但我不知道我需要考虑多少或主要差异才能做出决定如果我需要这些东西。
所以我的问题是,为了决定 EJB 是否值得研究,或者我是否有足够的其他库和技术的形式,我需要知道哪些基本的、本质的区别?我一直在谷歌和 Usenet 上,但无法在任何地方找到这些信息。
刚刚又想到了一点。据我了解,@Stateful bean 注释为我提供了线程安全的状态保存。我可能不会直接使用线程,但我知道 Java 经常在幕后这样做,尤其怀疑 EE。当我需要保持状态时,如果已经提供了线程,我不想处理线程。
java - 在 JSF 的托管 bean 中,getter 和 setter 都是强制性的吗?
我有一个 JSF 组件,它是从托管 bean 的 getter 初始化的getProperty()
。setProperty()
是否必须在该托管 bean 中也有一个设置器?
java - 如何引用 JAR 文件中提供的 JSF 托管 bean?
我有一个具有以下结构的 WAR 文件:
JSF 托管 beanBusinessObjectTypeListController
位于 中commons-web-1.0.jar
并在 中/WEB-INF/lib
引用BusinessObjectTypeListView.xhtml
。当我运行我的 Web 应用程序并调用该视图时,我收到以下错误:
javax.servlet.ServletException:/view/common/businessObjectTypeListView.xhtml @34,94 listener="#{businessObjectTypeListController.selectData}":目标无法到达,标识符“businessObjectTypeListController”解析为空
为什么找不到控制器类?它应该在类路径中,是吗?
java - 用于读取现有数据时,如何使用数据库中的数据填充托管 bean 属性?
我有一个非常简单的托管 bean LOB
,用于读取现有 LOB(从 DB)以及LOB
向 DB 写入新的 LOB。
现在,因为我使用同一个LOB
bean 来读取从 DB 读取的现有LOB
(s)和同一个 bean(但当然是不同的实例)来LOB
向 DB 写入一个新的。当 bean 已被实例化以读取现有 LOB 时,如何告诉 bean 实例从 DB 检索数据?
我应该在每个属性的 getter 中检索特定于每个 bean 属性的数据吗?不是好选择,我想是因为我想一次从数据库中读取所有数据。
所以,我想要的是,bean 属性应该在一轮中填充来自 DB 的数据,远在 facelets 代码中使用的 EL 表达式调用 bean 属性的 getter 之前。
我可以以某种方式告诉该实例是为读取现有数据而不是为编写新数据而创建的
LOB
吗?
jsf - 在 JSF 2.0 中刷新托管会话 bean
在我将一些数据提交到数据库后,我希望我的会话 bean 自动刷新以反映最近提交的数据。在 JSF 2.0 中使用托管会话 bean 时如何实现这一点?
目前,我必须重新启动 Web 服务器才能清除会话并重新加载。