问题标签 [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 - WELD-001303 范围类型 javax.faces.flow.FlowScoped 没有活动上下文
我为注册过程实现了一个人脸流程,但是当我使用@FlowScoped 注释 bean“CreateBn”时出现此错误,并且当我使用 CDI: SessionScoped 时,它可以工作:
这是豆子:
而且我确定没有文件命名错误:流文件夹,xxx-flow.xml,xxx-return.xhtml。请帮忙
jsf-2 - FromOutcome for `Switch Node` 将流程引导到 `Method Call Node` 不会起作用
我将我的流程定义为:
如您所见,有两个交换节点。第一个指向 a View Nod
e,第二个试图指向 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-update
toform
或任何其他View Node
id 更改,那么它“工作正常”。
是我做错了什么,还是Method Call Node
不能用作 a 的结果Switch Node
?
jsf-2 - 初始化方法后在 Faces Flow 中加载 inboundParameters
我定义了一个流程:
如您所见,我有入站参数,需要在<initialize>
标签中传递的方法中进行适当的初始化。问题在于在初始化方法期间访问其值lockingBean.initializeBean()
。在其执行期间参数targetId
为空。它被正确传递,因为在视图中我将其值作为文本放置。这一切都意味着,传入的方法<initialize>
被执行,然后入站参数被传递到一个bean中。在我看来,这个顺序是不正确的。
是否可以更改此订单,或者是否有干净的方法?
此时我没有在初始化方法中做任何事情。所有初始化都已临时移至其他方法,并从面板组上设置渲染器的视图文件中调用。这一切都有效,但这个解决方案远非正确。
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”指令。
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
. 这是我的方法:
f:viewAction
这似乎执行得太早了(无论如何)。
f:event
bean 中的方法返回与 中相同的结果
f:viewAction
。导航案例
/li>
我错过了什么?
jsf - Java EE7 教程中的简单流程示例记住了先前流程的值
我只是在玩 Java EE7 教程中的简单流程示例并偶然发现了一个问题。
示例:tut-install/examples/web/jsf/simple-flow/
我很纳闷,因为流在返回页面后记住了FlowScope中的数据。
手册中的示例代码:
演示:
为什么要记住这个值?我离开到返回页面,值是空的,但现在又想起了!
这个例子有人有同样的问题吗?(在 GlassFish 和 WildFly 上测试)
jsf-2 - JSF 2.2 中的观点节点是什么?
将某些视图定义为流视图节点有什么好处?
FlowBuilder#viewNode
可以使用或使用单独的流定义文件中的view
标签来定义视图节点。faces-config.xml
例如
我知道这个定义是确定起始节点所必需的。但是为什么将其他视图定义为流的成员?
- 其他视图也可以访问流范围的 bean,
- 从流视图导航到非流视图可以吗?
jsf - JSF 2.2 和 Flows - 无法从视图 ID 中找到匹配的导航案例
我开发了一个简单的 JSF 流应用程序。JSF.2.2 和 GlassFish 4。
应用程序的视图结构如下所示:
但是问题出现了,当我进入一些流程时。例如 FLOW-A。之后,我收到以下警告:
当我已经在这个流程中时,我不能再次进入相同的流程吗?
cdi - 在 Web 片段中使用流
我正在尝试构建一个 webapp,其中包含一个包含流的 webfragment。
我开始构建我想用作 web 片段的 webapp 的独立版本。那行得通。之后,我将其转换为这种结构:
我不确定结构。如果有更好的结构或约定,请告诉我。
webfragment 设置正确,我的 webapp 可以识别它。我可以转到“webfragment-start.xhtml”页面,但是当我尝试进入我的流程时,我得到一个 NullPointerException:
我认为 CDI 不正确可用,因为在另一个项目中,我也在使用 JSF 2.2 和 Omnifaces,我收到此消息
我还按照 BalusC 关于如何在 tomcat 中安装 CDI的说明进行操作,它可以作为独立的 webapp,但不能作为 webfragment。
我没有找到关于如何构建 webfragment 的良好且易于理解的教程。如果你知道一个,欢迎你告诉我。
非常感谢您的每一次帮助!
亲切的问候,米莎
java - 退出 JSF 流
我开始使用 JSF Flows,在阅读了一些示例和规范之后,我开始使用它。
我正在使用目录中的打包流程方法,如规范的第 11.4.3.3 节中所述。它似乎更容易并且更符合自 JSF 2.0 以来已经采用的命名约定。
Bellow 是我当前的目录结构。流 id 是wizard。
我知道有一个通过调用返回节点来退出流程的概念。
您可以通过上图看到,我没有返回节点视图。它只是一个向导,有一堆可以来回导航的页面,其优点是维护了我的 ManagedBean 状态。
问题是,我可以导航到应用程序中的任何页面,而 JSF 仍然保持该流的状态。如果我返回到任何向导页面,所有信息仍然存在,这意味着 JSF 从未放弃流范围。
我的问题是:
- 如果我有一个“完成”命令按钮,我如何告诉 JSF 当用户单击该按钮时,它应该放弃当前的流范围?
- 更重要的是,如果我没有返回节点怎么办?如果用户导航到流目录之外的任何视图*,我如何告诉 JSF 放弃流状态?(通过“流”的概念,我认为这已经是标准行为)
*为了清楚起见,我的意思是另一个JSF 视图(我的应用程序中的另一个页面)。我知道如果用户触发对我的应用程序之外或 JSF 范围之外的页面的请求,它就无法执行任何操作。