问题标签 [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.

0 投票
1 回答
3342 浏览

jsf - CDI 托管 bean 和 JSF 托管 bean 可以相互通信吗?

我有一个想用 CDI bean 设置的 Tomcat 6 JSF Web 应用程序。不过,我将不得不逐渐将项目转换为 CDI。

我的问题是:CDI bean 和传统的 JSF 托管 bean 可以相互注入吗?

谢谢。

0 投票
2 回答
6741 浏览

serialization - @ViewScoped @ManagedBean 中的 @EJB 导致 java.io.NotSerializableException

在 @ViewScoped 托管 bean 中阅读了 @EJB 导致 java.io.NotSerializableException,但我的状态保存设置是server.

这是我所拥有的:

web.xml

customer.xhtml

CustomerController.java

PersonFacade.java

AbstractFacade.java:

这是堆栈跟踪:

我知道我可以通过声明PersonFacadetransient并使用 JNDI 在重建后获取 EJB 引用来解决此问题,但我真的不喜欢这种方法。

Glassfish 3.1.1 是否有可能提供不可序列化的 EJB?有没有办法@EJB@ViewScoped一起使用?

更新: 我发现这是与 MyFaces 相关的问题,使用 mojarra 一切正常

0 投票
1 回答
679 浏览

jsf - Java ManagedBean 方法可以返回 null 吗?

null当我希望用户返回同一页面时,我总是返回。例如,如果用户请求编辑组,但他无权访问,我通常会返回null并打印一些拒绝访问的消息。如果允许用户,我只返回下一页的名称,例如“编辑”。

例如,

当我 return 时null,将相同的页面返回给用户。到现在为止还挺好。但问题是,在 2 个请求之后,我总是得到NullPointerException这样的结果:

警告:StandardWrapperValve [Faces Servlet]:PWC1406:Servlet Faces Servlet 的 Servlet.service() 在 javax 的 com.sun.faces.application.view.StateManagementStrategyImpl$4.invokeContextCallback(StateManagementStrategyImpl.java:289) 处抛出异常 java.lang.NullPointerException .faces.component.UIComponent.invokeOnComponent(UIComponent.java:1253) 在 javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:672) 在 javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:1262) 在javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:672) 在 com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:284) 在 com.sun.faces.application.StateManagerImpl.restoreView( StateManagerImpl。java:177) 在 com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:131) 在 com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:430) 在 com.sun .faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:143) 在 com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:199) 在 com.sun.faces.lifecycle.Phase.doPhase(Phase .java:101) 在 com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110) 在 com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 在 javax.faces.webapp。 FacesServlet.service(FacesServlet.java:312) 在 org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) 在 org.apache。catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:第641章.invoke(StandardHostValve.java:185) 在 org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233) 在 com。 com.sun.grizzly.http 上的 sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)。ProcessorTask.invokeAdapter(ProcessorTask.java:791) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) at com .sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102 ) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask. java:53) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:69) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 在 com.sun.grizzly.util.AbstractThreadPool $Worker.run(AbstractThreadPool.java:309) 在 java.lang.Thread.run(Thread.java:619)

有谁知道返回null以获得相同的页面是否正确?我没有找到任何规范。

0 投票
2 回答
427 浏览

jsf - 在从 Core JSF 迁移到 Seam 时移植托管 bean 的功能

我曾经用预定义的值初始化实体对象的某些属性,早在它在 jsf 托管 bean(甚至托管 bean 的构造函数)的 @PostConstruct 方法中实例化时。在将项目移植到 Seam 而托管 bean 消失时,我无法再保留此功能(还想知道在没有托管 bean 的 JSF 2.2 中它会如何)。

实体类:

JSF 托管 Bean

JSF 页面

Seam 版本中的无状态会话 Bean 也承担了 jsf 托管 bean 的责任

缝版形式:

我需要有关如何使任务对象保存日期并在实例化时预先填充的登录用户数据(最好是默认类别)的建议。

0 投票
1 回答
3001 浏览

java - JSF Named Bean,Eager application scoped (aka @ManagedBean(eager=true) )

有什么方法可以从包中初始化由javax.inject.Named/ javax.enterprise.context.ApplicationScopedlike注释的命名 Bean ?@ManagedBean(eager=true)javax.faces

我想在应用程序启动时加载这个类,而不是在 webapplication 引用这个 bean 时。

附言。
Glassfish 3.1 注入的JSF 2.1 Bean

0 投票
1 回答
2644 浏览

jsf - JSF 2:可以在会话开始时初始化会话范围的 bean?

在 JSF 2 中是否可以在加载会话上下文后立即初始化会话范围的托管 bean?我知道 Application Scoped bean 和注释eager中的属性是可能的@ManagedBean,但是会话 bean 是否存在类似的东西?我有一个会话范围的 bean,无论是否访问特定页面,我都想加载它。

0 投票
4 回答
2647 浏览

java - @PostConstruct 不调用会话托管 bean

就像我在标题中所说的那样,我@PostConstruct在会话范围内的托管 bean 中有一个带有标签的方法。但是该方法永远不会被调用。在视图范围内的另一个 bean 中@PostConstruct工作正常。@Postconstruct标签在会话 bean 中工作?这基本上是我的问题。再见,谢谢!

0 投票
1 回答
472 浏览

jsf - 多值的 JSF 托管属性

正如 BalusC 作为对这个问题的回答所建议的那样,我想创建一个这样的托管属性:

在我的项目中,每个托管 bean 声明和设置都在 faces-config.xml 文件中完成。按照建议将注释放入代码中,不会给我带来任何结果。ftValues 始终为 null,即使我有一个或多个<input name="freetext"> 是否可能因为主要配置技术使用 XML 文件而没有考虑注释?

如何将 ManagedProperty 声明放入faces-config.xml?我尝试添加

在适当的托管 bean 部分中,但它因此错误而崩溃

找不到托管 bean myBean 的 Bean 或属性类 java.lang.String[]。

0 投票
1 回答
651 浏览

jsf - jboss-as 7 类在与 ApplicationScoped eager ManagedBean 的战争中加载

我的 Maven 项目中有这种结构:


我在两个类的 @PostConstruct 注释方法中放置了一个记录器,以确定首先调用哪个,在 JBossAS7 服务器上进行了几次部署之后,我注意到加载这些类似乎没有特定的顺序。我的意图是总是在 Module.class 之前加载 Registry.class。但是对于这个类加载行为,我不知道如何实现它。 在某些情况下,首先加载 Registry.class,但在其他情况下,即使我刚刚重新启动应用程序服务器并且没有更改代码

,Module.class 也会首先加载。 现在我的问题是,我可以做些什么来定义在 WEB-INF/lib 中加载 jar 的顺序吗?


不同的视角:

问题是否也可能不在类加载中,而是与 ApplicationScoped 急切的 ManagedBean 相关?我在 a.jar 上添加了一个类:


这样a.jar现在包含Registry.class 和RegistryTwo.class。有了这个,我期待这样的事情:

所需的输出

或(我有这个问题。)


在某些情况下,我得到这个:


根据@BalusC,ApplicationScoped Eager ManagedBean 将在应用程序启动时自动实例化( 如何强制应用程序范围的 bean 在应用程序启动时实例化?),这发生在我的代码中。

我只是好奇:

  1. JSF 如何加载/创建 ApplicationScoped Eager ManagedBeans?是否有某种规则可以定义/可以定义顺序?
  2. 当 RegistryTwo.class 都在同一个 jar 文件下并且它们都是 ApplicationScoped 时,为什么 Registry.class 没有在 RegistryTwo.class 之前/之后实例化?
0 投票
1 回答
952 浏览

jsp - 在 facelet 自定义组件中使用 jsf 托管 bean,就像在 jsp 中的 jsf 中一样

我有 jsf 应用程序,我必须在其中使用 facelet 自定义组件(在自定义标记库中定义)。为了实现这一点,我做了以下工作: - 创建了组件,其中ui:component - 在文件中创建了 taglib person.taglib.xml - 在 web.xml 中创建上下文参数 - 最后将组件包含在 xhtml 文档中

但我需要使用一个 bean,以便获取我必须显示的信息。我可以在 facelet 组件定义中使用 bean 吗?

例如,我创建了一个纯 jsp 页面,包括 jsf 标签,然后我可以从那里访问 bean(例如 Person)。

我可以faces-config.xml从 facelet 组件访问定义的 bean 吗?

(希望我足够清楚)