问题标签 [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 回答
6356 浏览

jsf - 当第一页使用与第二页相同的托管 bean 时,f:viewParam 是否仅在 url 中传递查询字符串?

让我们以搜索页面和结果页面为例。如果我有一个 ViewScoped bean 来处理我的搜索页面和我的结果页面,我可以使用以下方式通过 url 传递参数:

搜索.xhtml

后备豆

结果.xhtml

现在假设我有两个托管 bean - 一个用于搜索页面,一个用于结果页面。

查询字符串是否仍会使用 2 个不同的托管 bean 在 url 中构建,或者这仅在对两个页面使用相同的托管 bean 时才有效?

更新

我的 search.xhtml 和 results.xhtml 页面上也有相同<f:viewParam>的内容,但唯一的区别是我f:viewParam value在 results.xhtml 中指向的支持者与在 search.xhtml 中的支持者不同。当我这样做时,不会通过 url 传递任何参数。当我将我f:viewParam value的 in results.xhtml 指向我在 search.xhtml 中使用的同一个支持者时,参数可以很好地通过 url,但该值在我需要的结果支持者中不存在。如果我的 results.xhtml 页面中有重复f:viewParam的 s - 一个带有搜索支持者,一个带有结果支持者,一切正常。两个托管 bean有 2 个相同f:viewParam的 s 是正确的方法吗?

例子:

results.xhtml - 参数通过 url 传递,但在我的 resultsBacker 中不可用

results.xhtml - 没有参数通过 url 传递

results.xhtml - 参数通过 url 传递并在我的 resultsBacker 中可用,但看起来很笨重。这是正确的方法还是我仍然错过了什么?

0 投票
2 回答
546 浏览

jsf - 如何禁用 DeltaSpike 的加载屏幕

如何禁用@ViewScoped与 DeltaSpike 一起使用时出现的加载屏幕?

0 投票
1 回答
831 浏览

jakarta-ee - JSF2.2 生命周期中 CDI 的 ViewScoped

我正在尝试在 javax.faces.view.ViewScoped 中使用 @ViewScoped 和 @Named 注释,但由于某种原因,每次我调用我的操作来更新我的部分页面时,我的 bean 都会再次实例化,但我没有得到预期结果!如果我使用 @ManagedBean 和 viewScoped(javax.faces.beans.ViewScoped),它运行良好。

另一个问题是为什么 bean 被实例化了不止一次?是因为应用程序服务器的行为吗?

这是我的xhtml:

这是我的背豆:

这是我刷新页面然后单击搜索按钮时的控制台结果:

谢谢

0 投票
0 回答
556 浏览

jsf-2 - JSF 2 View Scope 状态保存未正确保存注入的属性和 ejb

我目前正在使用带有 JSF 2.0 (MyFaces) 的 Websphere 8.5。由于@ViewScoped bean 的状态保存(服务器和客户端模式),我一直面临一些问题。我有以下豆

我的测试页包含

状态保存时两者都将失败。

对于SessionBean,当我进入使用BrokenBean的页面,i = 1,在另一个页面设置i = 2,使用BrokenBean的页面仍然会显示i = 1。

对于 MyEJB,这将简单地将 NotSerializableException 提供给一些可能是服务器生成的名为 "*Local*MyEJB" 的类,其中 * 代表一些我不记得准确的字符。

我使用了一种可行的解决方法,但这就像“假设是透明的”JSF 的不必要的复杂化。还有其他看起来更干净的解决方法吗?

我最终上了这门课:

0 投票
1 回答
894 浏览

richfaces - 如何动态填充选择列表右侧的值

我正在使用rich:popuppanel 组件并且在选择列表中填充值时遇到问题。

我的要求如下。

  1. 填充扩展数据表

  2. 使用复选框选择一行 - 该行中的用户 ID 将传递给支持 bean

  3. 单击分配按钮

  4. 弹出面板应打开一个包含所有用户和分配用户的选项列表

问题是,getAllUsers() 调用返回所有用户,并且选择列表的左侧已正确填充。但是 getAssignedUsers() 根本没有被调用。所以选择列表的右侧总是空的。

XHTML 代码如下。

我的理解是问题是由于 bean 范围。我的 bean 是视图范围的,因此在初始化 bean 时,左侧和右侧面板中的数据都是预先填充的。

我尝试在 init() 本身中使用硬编码的 id 调用 setAssignedUsers() 。它工作正常。我需要的是一种动态传递 ID 并调用 getAssignedUsers() 的方法。

请建议如何执行此操作以及如何在打开弹出窗口时重新呈现选项列表。

谢谢!

0 投票
0 回答
644 浏览

jsf-2 - Primefaces 选项卡的自定义 JSF 范围“TabScope”

我正在尝试创建一个动态选项卡,其中从主选项卡中选择一行会动态创建一个选项卡并添加到 Primefaces TabView 而不离开主应用程序页面。我正在为主选项卡使用母版页(例如 countryMaster.xhtml),并为详细选项卡选择的每一行重新使用详细信息页(例如:countryDetail.xhtml)。

我想创建一个基于 ViewScope 的自定义“TabScope”自定义范围,其中我可以将详细选项卡的 tabId 绑定到支持 bean 并存储在 ViewMap 中。

  1. 我怎样才能做到这一点?
  2. 这可能吗?
  3. 如何获取使用支持 bean 实例的选项卡的 tabId?

谢谢!!

前任:

0 投票
1 回答
2647 浏览

java - @Named @ViewScoped 给出 java.io.NotSerializableException

我找到了很多文章@ViewScopedjava.io.NotSerializableException但对我的情况没有任何帮助。也许是因为我使用的是 CDI @ViewScoped,而且大多数较早的问题都是关于@ManagedBean. 再生产:

我有一个带有以下注释的演示模型:

部署工作正常。此外,当我使用此 PM 访问页面时,一切都很好。但是,在更改某些内容后现在重新部署项目时,我得到:

如果我使用@SessionScoped 或@Requestscoped,则不会发生这种情况。从其他线程我有提示在 web.xml 中将 STATE_SAVING_METHOD 设置为服务器。它没有设置为客户端,所以它应该是默认值。但我完全设置了它:

但仍然是同样的错误。有人可以帮我尝试什么吗?

0 投票
0 回答
1085 浏览

jsf - jsf viewscoped bean - 为每个页面(选项卡)设置值

抱歉,这听起来可能很基础,但如果有人可以解释如何使用 JSF viewscoped bean 为同一浏览器窗口中的每个选项卡设置显式值。

请指导我阅读一些文章或工作样本。

请帮忙,提前谢谢

更新:

auth-page.xhtml

上面代码中的值“activityEditorManagedBean.selectedActivityBean.title”是一个视图范围的 bean 变量值,但它在打开的每个选项卡中都有相同的值。

0 投票
0 回答
341 浏览

jsf - 在 jsf 中使用视图范围时传递值

我有一个只有几行的表,其中一个列包含一个按钮,现在当我单击编辑按钮时,它会将我带到一个新的 JSF 页面。编辑页面中的详细信息没有被填充。我正在使用视图范围我的托管 Bean。我浏览了一些帖子并了解一旦用户离开该页面,视图范围就会丢失。

我浏览了其他各种帖子,这些帖子建议我将值传递给另一个 bean,然后将其放入新的 jsf 或使用 f:viewparam。我想知道如何实现这个功能:

我希望使用视图范围托管 bean JSF1 来实现此流程-->单击表中的编辑按钮-->查看范围托管 Bean-->JSF2(需要填充详细信息,但显示空值)

在编辑详细信息页面中,该值显示为 null。

你能告诉我如何实现这个功能吗?谢谢。

0 投票
2 回答
10841 浏览

jsf - 当我使用 @ViewScoped 时出现 ViewExpiredException

我的 h:commandButton "Login" 有问题:当我使用 @ViewScoped 并按下此按钮时,会出现 ViewExpiredException,但是当我使用 @SessionScoped 时,没有任何错误。

堆栈跟踪:

我的页面:

这是我的 RegisterController 类: