问题标签 [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.
ajax - JSF:ui:include 和(损坏的)视图范围
我有一个 JSF 页面,其中包含一些常见元素,然后是 4 个根据各种用户操作动态加载和包含的部分。我有封装各种包含功能的 bean,结构如下所示:
在主视图页面上,每个包含都通过一系列条件渲染的 h:panelGroups 包含在 BalusC 在这些问题中的描述中:
https://stackoverflow.com/a/9897016/945403
https://stackoverflow.com/a/7113961/945403
视图范围 bean 包含一些关于用户活动的当前状态、他们当前正在查看的项目等的各种视图信息。
每个包含的视图都通过 ajax 和非 ajax 帖子执行各种任务。我的问题是某些面板中的某些操作似乎会导致视图范围被破坏,并且似乎没有押韵或理由。对于下面概述的错综复杂的工作流程,我提前道歉,但我会尽量做到清楚。
如果我在 include3.xhtml 中执行 ajax 操作,它们只会在 include 中呈现组件,我可以整天这样做,并且视图范围仍然存在。如果我执行非 ajax 帖子,刷新将更新(并可能添加以前未渲染的)include4.xhtml。然后,我可以随后在任何其他包含中执行操作。
如果我在 include1.xhtml 中执行一个 ajax 操作,它只调用它自己的支持 bean 中的方法,并且只更新它自己的组件,那么视图范围仍然存在。如果我执行调用 include3Bean 中的方法并更新包含 include2.xhtml 和 include3.xhtml 的 div 的 ajax 操作,则视图范围仍然存在,只要我继续在 include1.xhtml 中执行操作,视图范围就会保留。一旦我尝试在另一个包含中执行另一个操作,视图范围就会被破坏。
在这一点上,我对自己认为问题一定在于我正在更新不同的包含,而不是从中调用操作。但这似乎不是问题(或至少是唯一的问题),我现在将解释。
include2.xhtml 有一个 ajax 动作,当它被触发时,调用 mainViewBacking 中的一个方法并更新包含 include2.xhtml 和 include3.xhtml 的 div。如果我继续执行此操作,或在 include2.xhtml 中执行任何其他操作(包括非 ajax 操作),一切都会按预期工作并且视图范围仍然存在。但是,如果我随后在 include3.xhtml 中执行操作,则视图范围被破坏。奇怪的是我可以在 include1.xhtml 中执行操作,只要我愿意,他们将继续访问视图范围,但如果我尝试返回并在 include2.xhtml 或 include3 中执行操作。 xhtml,视图范围再次丢失。
我在这一点上有点卡住了,我什至不知道如何去找出问题所在。我假设一些关于刷新(以及删除或添加)包含的内容会导致视图范围丢失,但从之前链接的问题来看,这似乎不是问题,因为 ui 的实际 src 值:includes 不是动态生成的。而且我确实关闭了 mainview.xhtml 的部分状态保存。
这些动态显示的 ui:includes 有什么东西会破坏视图范围吗?
ajax - View Scoped bean 复制中注入的 Session Scoped Bean
我有一个ViewScoped
bean,在这个 bean 中我正在注入一个SessionScoped
bean。在这方面可以找到很多信息,并且非常简单。
会话 bean
看豆
小面
这里有趣的是,test
通过单击复选框会更新,但test2
不会。会话范围的变量永远不会更新。刷新页面时,我丢失了所有信息#{displayResults.followingBean.followingThese}
编辑:会话变量不会在 ajax 调用中更新,只有“注入的会话变量”
如果我更改javax.faces.STATE_SAVING_METHOD
为server
上面的代码有效,但是当 on 时client
,什么都没有。我丢失了通过ViewScoped
bean 保存的所有“会话”信息。
编辑 忘了提。在 Glassfish 3.1.2.2 上使用 JSF (Majorra) 2.1.6(刚刚更新了所有内容,希望这可以解决问题)。
编辑#2 使用上面的代码添加了完整的导入列表。
添加的信息RequestScoped
在这里和那里尝试了一些东西之后,如果我将接收 bean 设置为OR
,我正在寻找的功能没有问题SessionScoped
。设置为 时不起作用ViewScoped
。这一切都很好而且很花哨,但是我需要视图范围内的其他功能,将我的 bean 设置为会话范围是没有意义的。
任何帮助表示赞赏。
编辑 3
这已被记录为JIRA上的错误
java - Java EE 6 - ViewScoped 和会话 bean 中的 @PreDestroy 从未调用
正如我在本主题中所写,我需要在用户关闭或更改页面时调用一些操作。我以为我可以@PreDestroy
在我的视图范围内使用 bean,但它永远不会被调用(即使会话过期)。这是一个错误吗?我使用 Glassfish 3.1.2。
用户离开页面时如何调用bean方法的任何其他建议?javascript是个window.onunload
好主意吗?
jsf - 添加动态表单域时出错
我正在尝试将动态表单字段添加到 jsf 表单。但即使遵循简单的代码也会出错。
测试.xhtml
字段.java
包装实体;
公共类字段{
}
testBean.java
我上面的代码给出了“java.io.NotSerializableException:Entity.Field”错误。
如果我使 Field 类 Serializable 它再次给出错误。
我的简单代码有什么问题?提前致谢
spring - Spring中的JSF视图范围
@ViewScoped
Spring 3.0 中是否有类似 JSF 的范围?我有一个使用 JSF+Spring 的应用程序,其中支持 bean 由 Spring 管理。我在 Spring 中没有找到像 JSF wiew 范围这样的范围。我看到博客Porting JSF 2.0's ViewScope to Spring 3.0,但它对我不起作用。
这是我对自定义 Spring 范围的尝试:
application-context.xml
:
jsf - 会话结束时销毁视图范围的 bean
我的问题与这个(可能还有其他)有关:
如那里所述,没有简单的解决方案可以在导航时销毁视图范围的 bean,并且会话到期时似乎也是如此。
释放(调用方法)JSF 视图范围 bean 的非平凡方法@PreDestroy
会是什么样子,或者更具体地说,一旦会话到期,会是什么样子?
我在 GlassFish 3.1.2 上使用 Java EE 6 和 Mojarra 2.1.x。
jsf-2 - 链接的 ViewScoped bean 导致内存泄漏
在 JBoss 7.1.1 上的 JavaEE6 项目(EJB3、JSF2)中,@ViewScoped bean 似乎存在内存泄漏。上树的日子我花时间研究这个问题。所以我创建了一个带有两个页面的简单项目,以保证在离开@ViewScoped bean 的第一页之后将被释放。
树豆.java
第一个.xhtml
第二个.xhtml
系统输出:
在我向其他 @ViewScoped bean 添加依赖项之前,所有的想法都很好
树豆.java
树节点Bean.java
在那之后,没有一颗豆子被释放出来。有人知道如何处理吗?这是一个错误还是可能在某处配置?
jsf - 如何修复“目标无法访问,标识符 'bean' 解析为 null”?
我正在使用 JSF 2.1.7 和 Primefaces 3.2、CDI 和 Apache MyFaces CODI 来访问 @ViewScoped。
一切工作正常,但是当我通过 ui:param 将 bean 传递到另一个页面,然后尝试通过 ap:ajax 请求专门使用该 bean 时,我收到消息,“目标无法访问,标识符 'bean' 解析为无效的”
然后在 page.xhtml 我尝试这样做。
对 bean.simpleModel 的第一次调用正确解析。对 bean.onMarkerDrag 的 ajax 调用没有。
我对formBean 的声明是@Named("formBean"), @ViewScoped。
有任何想法吗?
jsf-2 - JSF 2 DataTable with multiple headers on dynamic columns
I'm developing a data-centric Web Application using JSF 2.1 and PrimeFaces 3.4.
As a result of a specific query, I must display the results in a bi-dimensional data table with some dynamic columns (imagine a sort of Pivot-table).
Currently I use a PrimeFaces <p:dataTable>
with some standard <p:column>
tags and a <p:columns>
for the dynamically-created columns. The table is backed by a @ViewScoped
Managed Bean.
It works fine, but:
- Just like a pivot-table, I need to display multiple headers too, in
order to group some fields together. Unfortunately,
<p:columns>
is not compatible with<p:columnGroup>
(nor with many other features like resizing etc.) - I need to display some custom sub-total rows (is there a way to do this?)
I was thinking about populating the entire <p:dataTable>
programmatically, but I can't use binding="#{...}"
with a @ViewScoped
bean due to JSF issue 1492.
jsf - 在 JSF 中保存视图
我有一个关于检索 JSF 页面的视图状态的问题。我有一个应用程序,用户可以在其中搜索列表中的人员,当用户按下“显示”按钮时,同一个 JSF 页面将填充各种人员的列表。现在,当我选择其中一个人时,将显示另一个 JSF 页面,其中包含有关该人的更深入和详细的信息。现在在该页面中显示了一个“取消/中止”按钮。我想要完成的是,当我按下特定的“取消/中止”按钮时,页面应该被重定向并导航回 JSF 页面,并显示列表,因此以某种方式应该存储“视图状态” (我只假设)但我不知道该怎么做...... 我只是想检查是否有人能够以某种方式解决此类问题..?(上面提到的JSF搜索页面被声明为viewscoped作为附加信息)
谢谢大家的帮助。。