问题标签 [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.
jsf - jsf 中的 viewscope 不支持 Ajax
我是 jsf 的新手。我在使用 ajax 和 viewscope bean 时遇到了麻烦。
这是我的代码:
索引.xhtml:
Bean2.java
该页面显示有 2 个输入框和一个命令按钮“测试”。当我在第一个输入框中输入值并单击测试时,没有任何反应(也没有错误)。
但是当我将 bean 设置为 Sessionscoped 时,它可以正常工作。
请指导我完成这个。
jsf - 应用程序范围 bean 的设置器无法设置值
我正在使用带有表单的 Primefaces 制作页面,该表单具有 ajax 上传图像并在提交整个表单之前预览它的能力。
为了实现这一点,我在主窗体之外制作了对话框:
在主窗体内有p:graphicImage
显示刚刚上传的图像的组件和显示对话框的按钮。页面由视图范围的 bean ( PageBean
) 支持,但传递StreamedContent
给p:graphicImage
值 bean 应该是会话或应用程序范围的(因为方法称为乘法)。ImageBean
所以我只为此目的制作了第二个应用程序范围的bean( )。
代码ImageBean
:
下一部分是fileUploadListener
。想法很简单——设置相应的字段PageBean
(在表单提交时保存)ImageBean
(在部分刷新后显示)并更新部分主表单:
奇怪的事情来了。内部setImage()
方法一切正常 - 字段已设置,getter 工作正常。但是然后页面刷新,imageBean.getImage()
里面imageBean.imageStreamedContent()
返回null。
更准确——它返回旧值,就好像从未调用过 setter 或在另一个 bean 实例上调用过 setter。我在另一个String
字段上检查了它:在构造函数中对其进行了初始化ImageBean
,在处理程序中使用另一个值调用了 setter 并刷新了主窗体的一部分。同样的事情:来自构造函数的旧值。
我认为,我缺少有关 bean 生命周期或特定范围的内容。或者也许有更简单的方法来实现这个任务?
jquery - RichFaces 4:RF 展示中的数据表样式效果在范围视图中不起作用
我正在尝试对我的 jsf 数据表进行样式设置,如下所示:
它在第一次加载页面时工作。但是,当我使用 ajax 调用对列进行排序时(如前面显示的链接中所述),样式消失了。如果我刷新,样式又回来了。
如果我把我的范围放在请求范围内。样式有效,但功能排序不再有效。我不太明白的事情。(有兴趣解释这种现象......)
所以我知道 jquery 很担心,但我找不到办法说:“嘿,当我对数据表值进行排序时,不要让样式消失”
也许与 reRender 有关?
BalusC,有什么想法吗?:)
非常感谢各位,
祝你今天过得愉快。
jsf - viewscoped bean 动作不能返回相同的视图
我在使用视图范围 bean 时遇到问题。我在 xhtml 中有命令按钮,在托管 bean 中有关联的操作,应该再次呈现相同的视图。操作方法返回正常,但没有呈现视图,它在浏览器中卡住了“等待本地主机”消息。由于某种原因,bean 的 @PreDestroy 方法和注入其中的 ejb 的 @PostConstruct 方法被多次调用(似乎无限)。如果我将 bean 更改为 Sessionscoped,一切正常。我正在使用 netbeans 7.2.1,使用添加了 JSF 框架的 Web 应用程序。
xhtml部分:
后备豆:
和ejb
我需要这个 bean 是视图范围而不是会话范围。有什么想法 viewScoped 有什么问题吗?
我已经看到了这个问题:@ViewScoped Managed bean 在 postback 期间加载了很多次,但是那里的解决方案对我不起作用。
谢谢!
jsf - Viewscoped JSF 和 CDI bean
我在 JBoss EAP 6 上使用 Java EE 6,我的 JSF bean 注释如下:(
@ManagedBean @ViewScoped
都来自javax.faces.bean
包)
但是,它们也是 CDI bean(默认构造函数、使用@Inject
等@PreDestroy
)。我一直在阅读,您不能混合使用这些注释(JSF 和 CDI),但它显然工作正常:注入工作正常,在视图更改时调用 preDestroy 等)。
我错过了什么吗?问题是什么?为什么不使用?
pdf - PrimeFaces p:media 不能在 @ViewScoped bean 中使用 StreamedContent
我有一个与浏览器中的 Primefaces4 meida 类型渲染 pdf 文件相关的问题。我已经成功地尝试了 primefaces 网站上展示的示例。现在我想获得一个新功能,它在左侧面板中提供带有文档节点的树结构。用户可以选择一个文档以将其显示在中心面板中。这意味着一旦用户在树上的一个文档上进行选择,它就会在 backbean 中生成 pdf 媒体字段。
相关代码如下所示:
豆豆:
我的部分观点:
当我运行此代码时,没有错误或异常。但是,Firefox 中没有生成 PDF 查看器。真奇怪!
基于 BalusC 评论的后续问题:
当我的应用程序运行时出现此异常:
我发现这条线导致了这个异常:
如果我创建一个真正的 pdf 文件,异常就消失了。但是如果用户没有选择文件,我真的不希望显示 pdf 文件。
jsf-2 - 为什么在 bean 销毁和 POST 渲染新页面后,浏览器刷新时会引用我的 @ViewScoped bean?
首先,我使用的是最近添加到 OmniFaces 1.6 并在其中发布的 OmniFaces CDI @ViewScoped。我很高兴在我的应用程序中使用 OmniFaces CDI @ViewScoped,但我有一个问题。
我注意到我的(TomEE 1.6 快照)服务器日志中有一些 NullPointerException,我什至在测试使用/引用标有 OmniFaces CDI @ViewScoped 的 bean 的页面时遇到了 NullPointerException。当我通常执行类似于以下操作时会发生 NullPointerException:
(1) “呈现”引用/使用 CDI @ViewScoped bean 的页面。
(2)单击存在'view'的(PrimeFaces)commandButton/Link(下),commandButton/Link action="..." 负责销毁@ViewScoped bean。
和
(3) 在上面的第 2 步之后,我自己或最终用户立即执行“浏览器刷新”(Google Chrome 中的 F5 键),并且由于某种/无论什么原因,CDI @ViewScoped bean(由上面的第 1 步引用)在没有正在重建的 bean...正确,因为 actionListener=#{viewScopedBean.methodToPrepareStep1View()} 或 action="#{viewScopedBean.methodToPrepareStep1View()}" 不是由“浏览器刷新”按钮/请求调用的。
(4) 因此,@ViewScoped bean 成员为“null”,并且当用户“意外”按 F5 或执行“浏览器刷新”时会引发 NullPointerException。
注意:状态保存 = 服务器和(HTTP)过滤器指示浏览器“不”通过以下方式缓存 jsf/xhtml 页面(很久以前我从 BalusC 学到的,在 stackoverflow.com 上):
另外,我阅读了以下其他/相关帖子:
ViewScoped 像 RequestScoped 一样工作 - 为什么?
这是因为我(作为 2 岁的 JSF 开发人员)的糟糕设计吗?
我是否需要测试所有引用 CDI @ViewScoped bean 的 xhtml 页面,并重复我上面列出的步骤,然后在我的代码中到处处理 NullPointerException ......这是由“浏览器刷新”引起的?这是解决此问题的唯一方法,还是有更好的更推荐的方法来处理(或避免)CDI @ViewScoped bean 销毁后由浏览器刷新引起的 NullPointerException?
请告知/确认。谢谢。
编辑:(2)上面有“正确”的描述和有助于复制这个问题的代码。
jsf - 使用 @ViewScoped 时的 java.io.NotSerializableException
如果我@ViewScoped
在 JSF 中使用,则会发生以下异常:
我可以通过让 bean 实现来解决它Serializable
。但是,我不明白其中的道理。为什么这个异常只发生在视图范围而不是其他范围?
jsf - Primefaces数据表选择行在viewscope中不起作用
在我的应用程序中,我使用的是ViewScoped
Bean,当在 primefaces 数据表中选择一行时,它不会显示选定的行。但是,如果我将 Bean 更改为 Bean,SessionScoped
那么它会完美地显示所选行。
我阅读了一些论坛帖子,发现使用ViewaccessScoped
bean 可以解决问题。有人可以在这个问题上帮助我吗?我的jsf版本是2.2。
primefaces - Primefaces 数据表行选择在 viewscope 中不起作用
在我的应用程序中,我使用的是 ViewScoped Bean,当在 primefaces 数据表中选择一行时,它不显示选定的行。但是,如果我将 Bean 更改为 SessionScoped Bean,那么它会完美地显示所选行。
我的代码如下所示。
我的 managedBean CDI 是这样的。
PMData 和 PMDataModel 类工作正常。有人可以在仍然使用 viewscoped bean 的同时帮助我选择行吗?