问题标签 [flow-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 流并传递参数?
我是 Java 编程世界的新手(但不是编程),我已经用两只脚一直跳到我的脖子上试图解决一个问题。
我有一个 JSF 2.2 页面,该页面当前正在创建如下链接:
/folder1/destination.jsf正在执行一些工作,然后跳转到/anotherfolder/destination2.jsf并在跳转中丢失了 bean。我想将 bean 传递到第二页,并认为使用 JSF 2.2 FlowScoped bean 可以解决问题。
我创建了以下 FlowBuilder:
destination.jsf 的支持 bean 以这种方式实例化:
我现在的问题是试图了解如何启动流程并将参数传递给它。
任何有关如何做到这一点或解决此问题的更好方法的建议将不胜感激。
环境: JSF 2.2、Java EE 7、EclipseLink、Oracle Weblogic 12.1.3
glassfish-4.1 - 将 Flowscope 迁移到 Glassfish 4.1
在 glassfish 4.0 中,我有一个使用 @flowscope 的有效 JSF 应用程序。流定义的示例如下:
我升级到 glassfish 4.1 附带的 netbeans 8.02。在源代码中我不得不更改一些导入,没有其他更改。流量镜不再工作了。我没有注意到服务器日志中的任何相关错误。在我看来,流注释被简单地丢弃了。有什么建议吗?
谢谢
jsf - 除了使用 FlowScoped 的默认节点之外,如何设置另一个开始节点?
安赫尔·伦纳德的书摘录,
<view tag>
:嵌套在<flow-definition>
标签中,表示代表流节点的JSF页面;它将显式 ID 关联到每个页面(Facelet)路径(此外,您可以通过其 ID 引用每个页面)。页面路径映射在<vdl-document>
标签中,嵌套在<view>
标签中。该标签的存在是可选的,但作为约定,至少存在<view>
指示起始节点(起始页)的标签,特别是如果您想设置默认节点之外的另一个起始节点,它由页面中的页面表示与流具有相同名称 (ID) 的流。此外,您可以使用可选<start-node>ID</start-node>
标签并指明<view>
映射自定义起始页的标记。或者,可以通过将标签的id属性的值设置为流ID,将封装标签的内容设置为自定义起始页的路径来指示流的起始节点。当您引用流 ID 时,JSF 将转到该页面并自动将您置于流中。
假设我有 4 个相对于webapp
目录的页面,如图所示:
作者在以下位置建议此设置faces-config.xml
:
我已经试验过了,并且确实知道,
是可选的,同样由同一作者提出。
这已经足够了(该id
属性与需要创建流的 JSF 视图具有相同的名称。)-
id
此外,仅当属性 与 JSF 视图的名称完全匹配时才会创建流<flow-definition id="registration">
,即:
registration
.xhtml
重复同一提取物的一部分:
...至少存在
<view>
指示起始节点(起始页面)的标记,特别是如果您想要set another start node
除 之外default one
,它由流中的页面表示,流same name (ID)
为流。此外,您可以使用可选<start-node>ID</start-node>
标记并指示映射自定义起始页ID
的标记。<view>
用更简单的话来说,他建议像这样嵌套在同一个<flow-definition>
中,
但我看到从index.xhml
toconfirm.xhtml
不会true
返回
至于何时从 导航index.xhtml
到confirm.xhtml
。
有什么建议么?
jsf - JSF Flow - 隐式导航不起作用
我开始使用 JSF Flow。我正在按照本教程http://courses.coreservlets.com/Course-Materials/pdf/jsf/jsf2/JSF-2.2-Faces-Flow-1.pdf第 6-12 页中的说明进行操作。
隐式导航对我不起作用,就像在教程中一样。当我导航到 index.xhtml,然后单击 commandButton 到 sampleFlow 时,我得到 nullPointerException。点击刷新/F5 后,我的流程页面被加载。然后我可以使用 Page-A 和 Page-B 链接。但是,每当我想使用 index、sampleFlow-return 导航出流程时,我都会得到相同的堆栈。
玻璃鱼日志
我创建了简单的应用程序,结构如下:
每个 *.xhtml 页面都包含相同的 set commandButtons
我的 sampleFlow-flow.xml 是空的,如教程所述。
我正在使用 Glassfish 4.1.1 运行 Netbeans 8.1
jsf - @FlowScoped bean 的线程安全
我用@FlowScoped bean 做了一个小实验,据我所知,它的目的是更容易地创建“向导型”Web 应用程序,逐渐在一系列页面上累积数据,然后,一旦所有数据准备就绪,编写它到持久存储(这只是一个例子,当然没有什么可以阻止在中间步骤期间写入持久存储)。正如我所看到的,对@FlowScoped bean 的调用是不同步的,因此原则上可能会破坏存储在 bean 中的数据(通过双重提交,或以任何其他方式启动两个几乎同时的 HTTP 请求,它调用 bean 的方法)。这与同步调用的 @ConversationScoped bean 不同。
令我困惑的是,关于@SessionScoped bean,我发现了几个链接,这些链接谈到需要同步对 @SessionScoped bean 的访问(或者建议根本不使用它们,除了很少更改的用户数据),但我有没有找到关于 @FlowScoped bean 的任何类似内容。
那么,什么被认为是使用 @FlowScoped bean 的“最佳实践”?我错过了什么吗?
编辑
@FlowScoped 至少对我来说似乎部分受到 Spring WebFlow 的激励,我有一些经验,据我所知,它提供了与 JSF 2 的集成(似乎并非所有 JSF 2.2 功能都已实现,但它例如,似乎 PrimeFaces 是可用的)。我知道 Spring WebFlow + JSF 实际上是在“现实世界”应用程序中使用的,流范围对象的线程安全问题与双重提交问题一起被优雅地处理(流执行 ID 必须随每个 HTTP 请求提供,并且它过期并在调用 Spring WebFlow“动作”方法的 HTTP 请求后返回一个新的方法:因此不能同时为同一用户和流 ID 调用多个“动作”方法)。
所以我想了解,如果我希望使用 @FlowScoped bean 来构造应用程序“流”(不使用 Spring WebFlow),那么在 JSF 2.2 的情况下,最佳实践是什么。我真的需要自己同步对@FlowScoped bean的访问,还是有一些标准的方法来处理这些问题?
jsf - 当另一个没有完成时创建一个新的 FlowScoped bean
我在 weblogic 上使用 JSF (Primeface) 和 j2ee。
所以,我的应用程序中有两个不同的流程:
流量配置:
CDI的流豆:
第二种配置:
公共类 OrderFlow 实现 Serializable {
CDI的流豆:
我的情况:
用户打开页面,通过单击 h:button 启动“requestFlow”(没有完成它!)
使用菜单导航到另一个页面,通过单击 h:button 尝试启动“orderFlow”。
问题:“OrderFlow”在控制台中没有任何错误启动!第一个流程仍在内存中,但根据文档,它必须被销毁。
所以,我希望能够在另一个没有完成时创建一个新的 FlowScoped bean。
有什么建议么?
jsf - JSF 流。结束当前流程并开始新的流程
我有一个 Web 应用程序,用户可以从该应用程序的几乎所有页面开始搜索。
每次用户搜索时,我都想开始一个新流程,所以基本上我有:
我可以通过记录器看到流程已启动并且流程已完成,但 jfwid 永远不会改变(我使用 faces-redirect=true,表单参数也不会改变)。
我怎样才能做到这一点?
spring-mvc - 获取尝试启动 JSF 流的空指针
我定义了 2 个流程:create-colaborator和view-all,如下所示:
当我尝试启动其中一个时,会出现以下异常,并且仅在单击两次时才有效。在我开始一个流程后,我无法开始另一个流程。
我读到这可能是因为与 CDI 和 Spring WebFlow 冲突,但我没有使用我刚刚添加的 Spring webflow 和 CDI,因为我需要使用 FlowScope。我的 pom.xml :
jsf - JSF FlowScoped 直接入口点
抱歉,如果有人问过这个问题,但我找不到答案。
我已经将一些 spring bean 转换为 cdi @Named 并将范围设置为 FlowScoped。我这样做是为了解决一个问题,即会话范围的 bean 在多个选项卡之间共享,并在以前打开的选项卡中破坏了应用程序。
我已经部分工作了,但我遇到了 FlowScoped bean 入口点的问题。
我发现的所有示例都使用带有按钮的页面,该按钮具有导航到流入口点的操作(我创建了一个空白 bean-flow.xml 文件)。有没有办法直接从链接或从面孔重定向进入流范围?我有点需要这个有两个原因。或者也许还有其他解决方法?我使用 spring security 登录,它设置为default-target-url="/search/search.xhtml"
. 我通过创建另一个页面并仅使用以下内容在加载时进行重定向来解决此问题
以上有效,但以下无效
理想情况下,我还希望能够直接在地址栏中输入
在我这样做或面部重定向的那一刻,我得到一个错误
在这一点上的任何帮助将不胜感激。
jsf-2.2 - FlowScope getNavigationCaseFromFlowStructure 空指针错误
我有一个使用嵌入式 tomcat 的项目,我试图从外部页面输入一个流,但出现错误,我不知道如何解决它。
这是我的结构:
尝试访问流时的错误是:
绒球:
索引.xhtml
代理/代理-flow.xml
代理/proxy.xhtml
豆类/ProxyBean
请帮助我,我找不到答案为什么