项目之间的 JSF 动态面包屑

JSF Dynamic Breadcrumbs Between Projects

这可能有点令人困惑,但我会尽量弄清楚。

我有三个项目。一个是注册表系统,它存储两个应用程序之间共享的信息。

使用应用程序 1 和应用程序 2 您可以访问注册表,该注册表应该有返回特定应用程序主页的面包屑。

到目前为止,我拥有的是一个 bean,它可以确定哪个应用程序处于活动状态,并且 returns 适合所请求页面的 url。问题是我的 UI 不接受 url.

<ui:define name="breadcrumbContent">
    <h:form id="headerForm">
        <ol class="breadcrumb">
            <li><h:link value="#{i18n.recordList}" immediate="true"
                    outcome="#{breadCrumbNavigator.navigatingPage}">
                    <f:param name="pageToGoTo" value="faces/produceManager/index.xhtml"></f:param>
                </h:link></li>
            <li><h:link value="#{i18n.businessRegistry}" immediate="true"
                    outcome="#{breadCrumbNavigator.navigatingPage}">
                </h:link></li>
        </ol>
    </h:form>
</ui:define>

这给了我两个错误

This link is disabled because a navigation case could not be matched.
enter code here

Unable to find matching navigation case from view ID '/produceManager/list.xhtml' for outcome '/ss/faces/index.xhtml'

在 bean 中,我对 URL 进行了硬编码。我已经尝试过使用和不使用 'localhost:9080' 前缀。我有点迷失在这个上。还有其他人用面包屑做这样的事情吗?

结果真的很简单!

我所要做的就是在 faces 配置中定义一个导航案例并使用命令链接。

<ui:define name="breadcrumbContent">
    <h:form id="headerForm">
        <ol class="breadcrumb">
            <li><h:commandLink value="#{i18n.recordList}" immediate="true"
                    action="#{breadCrumbNavigator.getNavigatingPage}">
                    <f:param name="pageToGoTo" value="goToDashboard"></f:param>
                </h:commandLink></li>
            <li><h:commandLink value="#{i18n.businessRegistry}" immediate="true"
                    actions="#{breadCrumbNavigator.navigatingPage}">
                    <f:param name="pageToGoTo" value="goToProducerManager"></f:param>
                </h:commandLink></li>
        </ol>
    </h:form>
</ui:define>