问题标签 [view-scope]

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 投票
2 回答
1874 浏览

spring - 具有自定义 ViewScope 的托管 bean

我正在使用 Spring 3.1.0.RELEASE、JSF 2.x、JPA 2 和 Hibernate Provider 做一个 Web 应用程序。我使用 PrettyFaces 3.3.2 作为友好的 URL。该应用程序在 Tomcat 6.35 上运行。

我想使用 Jsf ViewScope 所以我决定按照网上找到的实现:http: //comdynamics.net/blog/109/spring3-jsf2-view-scope/

我注意到@PreDestroy没有像显示这个问题那样调用它们@PreDestroy 从未调用过 @ViewScoped

这是否意味着带有 ViewScope 的托管 bean 永远不会破坏?这导致内存泄漏。我们应该这样使用这个范围吗?

它只发生在 Spring 或 Mojarra 上的自定义 Viewscope 上?

谢谢。

0 投票
1 回答
1461 浏览

jsf - JSF 2.2 @ViewScoped 绑定错误?

我已经阅读了有关 @ViewScoped ( BUG REPORT ) 的绑定错误,并且它已在最新版本的 JSF 中修复,因此我使用 3 个最新版本的 JSF 对此进行了测试,并尝试使用

修复以解决它,但没有运气。

我有一个 primefaces 数据表,其中每个列标题中都有过滤器。

在我更改 JSF 版本之前,每次单击“过滤器”按钮时,都会创建一个新的 cadastroClienteBean 实例。现在我已经更改了它,似乎 ManagedBean 不是每次都被实例化,但是 cliente 变量正在变为空,即使我在构造函数上实例化它。

编辑:在调试了一下之后,我发现过滤器的值被设置在变量上,然后 setCliente() 被调用并将其设置为 null,但我不知道为什么。

0 投票
1 回答
2061 浏览

jsf-2 - ManagedProperty 的序列化

@ViewScopedJSF和存在以下问题@ManagedProperty:我们的ManagedBeans 基本上如下所示:

正如预期的那样,在处理请求后,控制器将被序列化。我希望@ManagedProperty sessionConfig在序列化中特别处理它,特别是在反序列化后它将被“重新链接”。然而,事实证明,反序列化后sessionConfig只是实际 SessionConfig-Bean 的过时克隆。

问题:

  1. 这是预期的行为吗?
  2. 我们可以做些什么来让 JSF 重新评估@ManagedProperty反序列化后的结果?

目前,我们在反序列化后“手动”重新评估所有托管属性。它有效,但显然似乎不正确。

谢谢!

0 投票
2 回答
5630 浏览

jsf-2 - 在@ManagedBean 中使用@Interceptor

使用 CDI 进行拦截在 @Named 中完美运行,但在 @ManagedBean 中却不行:

可记录的.java

LoggingInterceptor.java

WorkingBean.java

豆类.xml

ViewScopedBean.java

我知道,这种拦截器旨在与WebBeans(和EJB)一起使用,但我正在寻找具有相同拦截器概念的两个世界(描述+ JSF)的解决方案我需要@ViewScoped @ManagedBean,这就是为什么我无法摆脱 @ManagedBean 以支持纯 WebBeans

系统:Mojarra 2.1.7 Primefaces 3.2

0 投票
1 回答
244 浏览

ajax - Inputext 空指针与和@ViewScoped

我面临一个问题,我无法解决:(

通过在 selectOneRadio 中选择一个项目,我想设置一个特定的变量:

使用 managedBean SessionScope,此代码可以工作,但使用 ViewScope,它不起作用。

在 ViewScope 中,当我单击按钮时,特定变量为空,但如果我删除组件,则设置特定变量!

我需要用来在 inputext 之间切换 :(

我该如何解决我的问题?

发送很多!

0 投票
1 回答
621 浏览

jsf - 转换器不适用于 @ViewScoped

我遇到了转换器的问题。在我的 xhtml 文件中,我有一个带有对象列表的 selectOneMenu,我想在我的 managedBean 中设置一个对象。

如果我的 managedBean 具有@SessionScoped,则 managedbean 中的对象被填充,但如果 managedeban 具有 @ViewScoped,则转换器永远不会使用并且我的对象为空。

如何解决这个问题?

XHTML:

类型转换器:

发送很多

0 投票
1 回答
78 浏览

java - 在视图显示或更改后执行一些代码

我有一个菜单,其中包含指向不同视图的项目。

每个视图都有一个带有附加侦听器的选择组合框。

在该视图中,我使用会话范围的托管 bean。

当我第一次导航到视图时,会在构造 bean 时调用一个方法。当用户从选择框中更改值时,将调用相同的方法。但是重新显示视图时不会调用该方法。

发生这种情况是因为我使用了会话范围的 bean。更好的解决方案是改用视图范围的 bean,但我正在寻找替代方案。有没有办法在视图更改时执行某些代码?

0 投票
0 回答
684 浏览

primefaces - 使用 @ViewScoped bean 和 s:viewAction 的 primefaces 文件上传

我正在使用 JBoss 7.1.1.Final、Seam 3.1、CDI、JSF 2、Primefaces 3.4RC1。我有一个包含以下 s:viewAction 的页面:

entryActionManager 是@ViewScoped,因此在加载页面时会检索entryId GET 参数,并在此@ViewScoped bean 中加载相应的条目。

此外,我在同一页面上有以下 fileUpload 组件:

事实证明,如果我想上传文件,@ViewScoped bean 将会死掉并且 s:viewAction 会再次被执行。但是,由于某种原因,它不再具有 GET 参数(entryId),因此它失败了。

我试图设置:

但它不起作用。您知道任何解决方法吗?一种选择是使用@ConversationScoped,但我更喜欢使用@ViewScoped

谢谢

0 投票
3 回答
7550 浏览

jsf-2 - ViewScoped bean 的内存泄漏?

在我们 在JBoss 7.1.1上的JavaEE6项目(EJB3JSF2)中,似乎我们有 SeamFaces 的内存泄漏。@ViewScoped

我们制作了一个小原型来检查事实:

  • 我们使用 JMeter 调用一个页面 200 次;
  • 该页面包含并调用一个视图范围的 bean,该 bean 注入了一个有状态的 EJB;
  • 我们将会话超时固定为 1 分钟。

在测试结束时,我们使用 VisualVM 检查内存的内容,得到的结果如下:

  • 使用@ViewScopedbean,我们仍然可以获得 200 个有状态实例MyController——并且该@PreDestroy方法永远不会被调用;
  • 使用@ConversationScopedbean,@preDestroy方法被称为会话结束,然后我们得到一个干净的内存。

我们是否错误地使用了视图范围,或者它真的是一个错误?


这是 XHTML 页面:

现在包含 bean myBean。对于该@ConversationScoped变体,所有已注释的部分均未注释。

然后注入的有状态bean MyController

0 投票
0 回答
623 浏览

param - 当按下 bean 2 的命令按钮时,使用 f:param 从一个 bean 传递值会丢失值

在两个 bean 上使用 ViewScope 我通过 commandLink 使用 f:param 将值从一个 bean (browseUsers) 传递到另一个 bean,但在 bean 2 (editUsers) 上,当在构造函数上按下命令按钮并且所有值都丢失时。请指教。

browseUsers.xhtml 上的 commandlink 和 datatable 代码:

editUsers.xhtml 上的命令按钮代码如下:

editUsers.java 上的 bean 方法如下:

@ViewScoped

公共类editUsers实现可序列化{