繁体   English   中英

如何在子文件夹中放置JSF流?

[英]How to place a JSF flow in a subfolder?

我正在将JSF Faces流引入我的应用程序。 根据oracle文档 ,此方法有效 但是,仅在根文件夹中。

是否可以将JSF flow文件夹放在子文件夹中,否则放在该根目录中?

我无法正常工作。 那是所有人!

我自己解决了这个问题。

JSF流定义可以通过两种方式完成:

  • 带有配置文件:flowname-flow.xml
  • 使用配置类:flowname.java

第一个只能定义流名称,其位置默认为根文件夹。

第二个可以定义文件夹结构中更深的位置。

配置文件示例 :testflow.flow.xml

只能将id =“ testFlow”添加到定义中, 不能添加路径。 默认情况下,第一页为testFlow / testFlow.xhtml。

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    <flow-definition id="testFlow">
        <flow-return id="returnFromTestFlow">
            <from-outcome>#{testFlow.returnValue}</from-outcome>
        </flow-return>
    </flow-definition>
</faces-config>

配置类示例 :TestFlow.java

完全限定路径添加到此流中的视图节点。

public class TestFlow implements Serializable {

    private static final long serialVersionUID = 1L;

    @Produces
    @FlowDefinition
    public Flow defineFlow(@FlowBuilderParameter FlowBuilder flowBuilder) {

        String flowId = "testFlow";
        flowBuilder.id("", flowId);
        flowBuilder.viewNode(flowId, 
                "/other/location/flow/" + flowId + ".xhtml").
                markAsStartNode();
        flowBuilder.viewNode("testFlow2", "/other/location/flow/testFlow2.xhtml");
        flowBuilder.viewNode("testFlow3", "/other/location/flow/testFlow3.xhtml");
        ...

那是所有人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM