问题标签 [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.

0 投票
2 回答
3258 浏览

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

我为注册过程实现了一个人脸流程,但是当我使用@FlowScoped 注释 bean“CreateBn”时出现此错误,并且当我使用 CDI: SessionScoped 时,它可以工作:

这是豆子:

而且我确定没有文件命名错误:流文件夹,xxx-flow.xml,xxx-return.xhtml。请帮忙

0 投票
1 回答
422 浏览

jsf-2 - FromOutcome for `Switch Node` 将流程引导到 `Method Call Node` 不会起作用

我将我的流程定义为:

如您所见,有两个交换节点。第一个指向 a View Node,第二个试图指向 a Method Call Node

第一个工作正常,但第二个让我头疼。第二个是给我一个错误

Unable to find matching navigation case with from-view-id '/pages/publishers-form.xhtml' for action '#{publisherBean.proceed()}' with outcome 'proceed-form'.

进行功能只是

记录的信息确认,publisherBean.actionType.ifEdit()返回 true,但该事实被忽略。如果我将结果从invoke-updatetoform或任何其他View Nodeid 更改,那么它“工作正常”。

是我做错了什么,还是Method Call Node不能用作 a 的结果Switch Node

0 投票
1 回答
367 浏览

jsf-2 - 初始化方法后在 Faces Flow 中加载 inboundParameters

我定义了一个流程:

如您所见,我有入站参数,需要在<initialize>标签中传递的方法中进行适当的初始化。问题在于在初始化方法期间访问其值lockingBean.initializeBean()。在其执行期间参数targetId为空。它被正确传递,因为在视图中我将其值作为文本放置。这一切都意味着,传入的方法<initialize>被执行,然后入站参数被传递到一个bean中。在我看来,这个顺序是不正确的。

是否可以更改此订单,或者是否有干净的方法?

此时我没有在初始化方法中做任何事情。所有初始化都已临时移至其他方法,并从面板组上设置渲染器的视图文件中调用。这一切都有效,但这个解决方案远非正确。

0 投票
1 回答
4207 浏览

jsf - WELD-001303 直接访问时范围类型 javax.faces.flow.FlowScoped 没有活动上下文

自本周初以来,我一直在使用 JSF 2.2(MyFaces implementation v2.2.6 和 Weld v2.2.7.Final for CDI),我面临以下问题:我无法与我的兄弟直接访问流入口点.

例如 :

我的 webapp 包含一个名为“create”的流,它允许在数据库中创建记录。我希望能够http://my.domain/webapp/create/create.jsf在我的浏览器地址栏中输入 URL。

当我这样做时,页面无法正确呈现,并且服务器中出现以下日志

日志:WELD-001303 范围类型 javax.faces.flow.FlowScoped 没有活动上下文。

我究竟做错了什么 ?不应该吗?我希望它应该!

当我在流程之外创建一个页面时,我没有任何问题,只有一个 commandButton 重定向到流程入口点。当我查看源代码时,似乎已经创建了流的 ID,尽管尚未访问流。这让我觉得 FlowScoped 的设计很糟糕。此外,这样的解决方法(“启动器”页面)破坏了我自己的设计和最终用户体验。

有哪些可用的解决方案?

这是一些示例代码:

创建.xhtml

创建控制器

xhtml“启动器”

create-flow.xml 只包含一个“flow-return”指令。

0 投票
1 回答
745 浏览

jsf-2.2 - 是否可以从 Servlet 中启动人脸流?

我有一个服务,由一个 servlet 访问,它将用户重定向到登录屏幕。支持 bean 的范围目前正在从 @ConversationScoped 更改为 @FlowScoped,因为它更易于处理。

有没有一种方法可以直接从 servlet 中初始化面流,而无需通过隐式操作或 JSF 转发/重定向进行间接初始化?

我知道@FlowScope 是一个JSF (2.2) 范围,我想知道是否有一种方法可以扩展FacesServlet 或类似的东西。

作为一种解决方法,我目前只是添加了一个带有按钮的视图,这使得 JSF 向前进入流目录,但我试图避免这种情况。

更新
我尝试了许多方法来“自动”转发到流中,而无需单击任何按钮,但我总是得到一个No active contexts for scope type javax.faces.flow.FlowScoped. 这是我的方法:

  1. f:viewAction

    这似乎执行得太早了(无论如何)。

  2. f:event

    bean 中的方法返回与 中相同的结果f:viewAction

  3. 导航案例

    /li>

我错过了什么?

0 投票
1 回答
803 浏览

jsf - Java EE7 教程中的简单流程示例记住了先前流程的值

我只是在玩 Java EE7 教程中的简单流程示例并偶然发现了一个问题。

文档: Java EE7 教程 - 简单流程

示例:tut-install/examples/web/jsf/simple-flow/

我很纳闷,因为流在​​返回页面后记住了FlowScope中的数据。

手册中的示例代码:

演示:

为什么要记住这个值?我离开到返回页面,值是空的,但现在又想起了!

这个例子有人有同样的问题吗?(在 GlassFish 和 WildFly 上测试)

0 投票
0 回答
97 浏览

jsf-2 - JSF 2.2 中的观点节点是什么?

将某些视图定义为流视图节点有什么好处?

FlowBuilder#viewNode可以使用或使用单独的流定义文件中的view标签来定义视图节点。faces-config.xml例如

我知道这个定义是确定起始节点所必需的。但是为什么将其他视图定义为流的成员?

  • 其他视图也可以访问流范围的 bean,
  • 从流视图导航到非流视图可以吗?
0 投票
0 回答
269 浏览

jsf - JSF 2.2 和 Flows - 无法从视图 ID 中找到匹配的导航案例

我开发了一个简单的 JSF 流应用程序。JSF.2.2 和 GlassFish 4。

应用程序的视图结构如下所示: 在此处输入图像描述

但是问题出现了,当我进入一些流程时。例如 FLOW-A。之后,我收到以下警告:

在此处输入图像描述

当我已经在这个流程中时,我不能再次进入相同的流程吗?

0 投票
1 回答
314 浏览

cdi - 在 Web 片段中使用流

我正在尝试构建一个 webapp,其中包含一个包含流的 webfragment。

我开始构建我想用作 web 片段的 webapp 的独立版本。那行得通。之后,我将其转换为这种结构:

我不确定结构。如果有更好的结构或约定,请告诉我。

webfragment 设置正确,我的 webapp 可以识别它。我可以转到“webfragment-start.xhtml”页面,但是当我尝试进入我的流程时,我得到一个 NullPointerException:

我认为 CDI 不正确可用,因为在另一个项目中,我也在使用 JSF 2.2 和 Omnifaces,我收到此消息

http://omnifaces.org/cdi/

我还按照 BalusC 关于如何在 tomcat 中安装 CDI的说明进行操作,它可以作为独立的 webapp,但不能作为 webfragment。

我没有找到关于如何构建 webfragment 的良好且易于理解的教程。如果你知道一个,欢迎你告诉我。

非常感谢您的每一次帮助!

亲切的问候,米莎

0 投票
1 回答
1550 浏览

java - 退出 JSF 流

我开始使用 JSF Flows,在阅读了一些示例和规范之后,我开始使用它。

我正在使用目录中的打包流程方法,如规范的第 11.4.3.3 节中所述。它似乎更容易并且更符合自 JSF 2.0 以来已经采用的命名约定。

Bellow 是我当前的目录结构。流 id 是wizard

目录结构

我知道有一个通过调用返回节点来退出流程的概念。

您可以通过上图看到,我没有返回节点视图。它只是一个向导,有一堆可以来回导航的页面,其优点是维护了我的 ManagedBean 状态。

问题是,我可以导航到应用程序中的任何页面,而 JSF 仍然保持该流的状态。如果我返回到任何向导页面,所有信息仍然存在,这意味着 JSF 从未放弃流范围。

我的问题是:

  1. 如果我有一个“完成”命令按钮,我如何告诉 JSF 当用户单击该按钮时,它应该放弃当前的流范围?
  2. 更重要的是,如果我没有返回节点怎么办?如果用户导航到流目录之外的任何视图*,我如何告诉 JSF 放弃流状态?(通过“流”的概念,我认为这已经是标准行为)

*为了清楚起见,我的意思是另一个JSF 视图(我的应用程序中的另一个页面)。我知道如果用户触发对我的应用程序之外或 JSF 范围之外的页面的请求,它就无法执行任何操作。