问题标签 [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 投票
1 回答
276 浏览

java - `ViewScoped` bean 在 ` 之后被重新创建`添加?

我的 JSF 支持 bean 是ViewScoped.
由于我添加了另一个动作侦听器,即使视图没有更改,也会重新创建 bean。

HTML

当我按下OK按钮时,我不希望再次创建bean,因为它是ViewScoped,但是它被重新创建(调用构造函数)并且我丢失了一些变量。当我删除该<f:actionListener>行时,没有在OK.

我应该怎么办?

0 投票
1 回答
1196 浏览

jsf-2 - Primefaces Datatable 重新创建 viewScoped bean

我有一个包含 5 列的数据表。第一列包含:

Bean_OrdiniLavoro 是 ViewScoped。Bean_OrdiniLavoro.cmdSeleziona_Ordine 在新页面中重定向。

每次我单击命令链接 Bean_OrdiniLavoro 都会重新创建。这就是问题。

Primefaces 3.5 和 JSF 2.1.22。

我读过很多帖子说 PARTIAL_STATE_SAVING = false 就足够了但在这种情况下它不起作用。

如果我使用 a 而不是它的工作原理。

多谢。戴维德

0 投票
2 回答
1861 浏览

java - 在 p:dataTable 中单击命令按钮会导致 @ViewScoped bean 在应用程序调用后重新@Produced

风景:

控制器:

生产者

(使用此处@ViewScoped描述的 CDI 注释)

问题及其场景

  1. GET这页纸
    1. 豆子生产出来了
    2. 视图被渲染
    3. 响应发送到浏览器
  2. 点击按钮
    1. 数据被POSTed到服务器
    2. 阶段1-4 执行没有任何问题,并且@ViewScoped按预期使用 bean
    3. 阶段 5:controller.method调用data.id并访问1.1生成的 bean
    4. 方法返回重定向String
    5. !!制作人又来电了!!- 我们仍处于 APPLICATION_INVOCATION 阶段,但在实际方法调用之后
  3. 浏览器接收重定向
  4. GET下一页 ...

有效的半“驴”解决方案:

简而言之:点击时,将 id 复制到数据表之外,然后触发点击提交按钮。

h:commandButton表格列的内部添加:

表外:

最后它可以工作,但我无法弄清楚是什么原因导致第一种和基本方法重新初始化视图范围 bean。查看堆栈跟踪(见下文)似乎正在重建行。

问题:

有没有人对此问题有解释,也许还有一些注意事项?

堆栈跟踪

其中:getPipelinecheckSearchResults是用于检索支持表的列表的调用,这会导致调用生产者

堆栈跟踪

我已经浏览过的内容:

我已经阅读了以下文章/SO问题,但没有更好地理解上述(第一个)解决方案为何如此有效。

每次单击 dataTable 中的 commandButton 时,都会重新创建 ViewScoped bean

为什么 @PostConstruct 回调每次都会触发,即使 bean 是 @ViewScoped 的?JSF

如何将选定的行传递给 dataTable 中的 commandLink?

http://balusc.blogspot.de/2010/06/benefits-and-pitfalls-of-viewscoped.html

https://java.net/jira/browse/JAVASERVERFACES-1492

0 投票
2 回答
7512 浏览

java - JSF @ViewScope,PrimeFaces

我有:主页和对话框上的按钮。

A 想要托管 bean (NewDialog.java) 的 ViewScope 生命周期,执行对话框。换句话说:按下按钮时重新创建 NewDialog bean,并在关闭对话框时销毁。

但是在加载主页时已经创建了 NewDialog bean。如何仅在按下按钮时强制创建bean?

包含页面:

豆:

我使用:PrimeFaces 3.5 和 Mojarra 2.1.22

提前致谢!

PS:根据研究我补充说:

到 web.xml。


官方的Windows SDK提供了一种方法来获取已知文件夹的协作:

(编辑 8/29/14 指向官方 SDK)

0 投票
0 回答
69 浏览

jsf - ViewState 在部分页面呈现时更新/更改

我的代码如下所示:

当我点击链接保存时出现问题。然后不调用链接方法。Bean 有一个视图范围,我猜当我单击编辑按钮(这是使字段可编辑所必需的)时,视图状态会丢失,因此当我单击保存按钮时什么都不会发生。我对吗?这个问题有什么解决方法吗?Bean 必须具有视图范围...:/

0 投票
1 回答
5861 浏览

jsf - WELD-001303 范围类型 javax.faces.view.ViewScoped 没有活动上下文

我已经切换到 javax.enterprise.context.SessionScoped 到 javax.faces.view.ViewScoped 升级的 faces 2.1 到 2.2 以便能够在我的 CDI 注入中使用 ViewScoped。

切换到 ViewScoped 后,我开始收到此错误,我不知道为什么!你觉得这里有什么问题吗?

Glassfish 3.1.2、Primefaces 3.4.2、JSF 2.2

org.jboss.weld.context.ContextNotActiveException:WELD-001303 范围类型 javax.faces.view.ViewScoped 没有活动上下文

按钮打开页面:

jsf页面;

控制器;

0 投票
0 回答
324 浏览

ajax - jsf 2.0 viewscope在两个窗口中需要互相刷新

我有个问题:

我有一个视图范围的 bean/视图,其中包含一些数据(列表)的概述。当有人单击一个项目时,它会打开另一个视图范围的窗口/浏览器选项卡,该选项卡会加载并显示有关所单击项目的一些详细信息。

当用户打开详细信息页面时,我需要的只是“概述窗口”将状态图像从“未读”更改为“已读”(我更喜欢 ajax),所以我需要一种属性注入;但这是否适用于两个不同的视图范围?

我怎样才能做到这一点?

非常感谢您的帮助

添加。信息:我尝试了属性注入(其他视图范围的 bean);但值被重置;似乎它创建了一个没有内容的新视图范围的概览 bean)

0 投票
1 回答
1728 浏览

jsf-2 - 如何在 jsf 中使用 viewscoped 销毁托管 bean

我正在开发一个 JSF 2.1 项目。我正在使用 primefaces 3.5 组件。有两个带 viewscoped 的 managedbean,WizardBean 和 CreateInputBean。它们用于向导组件(primefaces)。最后一点首先是向导,我单击一个按钮然后打开对话框。对话框中还有向导。这里使用 CreateInputBean 创建域对象的实例。在打开对话框时再次创建实例后,由于 CreateInputBean 是生命,所以有最后一个实例的信息。我想用 ViewScoped 销毁 CreateInputBean 而不转到另一个页面。

我尝试了这些,但它们不起作用。

在此处输入图像描述

0 投票
0 回答
796 浏览

jsf-2 - 如何将表单值从一个 JSF 页面发布到另一个页面

我有两个网页 first.xhtml 和 second.xhtml,first.xhtml 有一个表单并由一个视图范围的 bean 支持,因为它涉及到同一个视图的 ajax 回发。现在,根据 first.xhtml 的视图范围 bean 中的提交方法结果提交此表单时,页面导航到必须显示 first.xhtml 的表单值的 second.xhtml。我该如何实现呢?我了解 viewscoped bean 存在,直到视图存在。

感谢这个页面

0 投票
1 回答
9482 浏览

jsf-2 - jsf 2将值传递给对话框不起作用

我想将一个值传递给一个对话框,但它不起作用。我已经尝试过这种方法但没有运气

这是我的页面:

和我的托管豆

我错过了什么吗?