gpt4 book ai didi

JSF 动态地将 src 包含在 "ui:include src="#{bean.pagePath} 中”

转载 作者:行者123 更新时间:2023-12-02 04:03:54 25 4
gpt4 key购买 nike

我尝试在不同的选项卡中使用 ui:include 标记包含多个源页面路径。问题是,当我将源页面路径指定为静态时,意味着将显示该页面,但如果从支持 bean 指定源页面路径,则意味着它将不包含该页面。

这是我的代码

template.xhtml:

    <p:layoutUnit position="center" id="layoutCenter">
<h:form id="tempFormId">
<p:tabView value="#{multiTabBean.tabsList}" var="useCase"
activeIndex="#{multiTabBean.activeTabIndex}">
<p:tab title="#{useCase.title}" closable="true">
<f:subview>
<h:panelGroup id="mainTempPanelGroupId" layout="block">
<ui:include src="#{useCase.path}" />
</h:panelGroup>

</f:subview>
</p:tab>
</p:tabView>
</h:form>
</p:layoutUnit>

bean :

public String menuAction() {                    
menuBtnRendered = true;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
selectedModuleViewId = externalContext.getRequestParameterMap().get(
"moduleViewId");

tabsList.add(new Tab(getTabId(selectedModuleViewId),
selectedModuleViewId, getModulePath(selectedModuleViewId)));

return null;
}

我正在使用@ViewScoped

最佳答案

<ui:include>在 View 构建时运行(当 XHTML 转换为 JSF 组件树时)。 <p:tabView>在 View 渲染时运行(当 JSF 组件树需要生成 HTML 时)。

所以,<p:tabView var><ui:include> 时不可用运行。这个问题在这个答案中有详细说明:JSTL in JSF2 Facelets... makes sense? ( <ui:include> 是一个标记处理程序,因此具有与 JSTL 标记相同的生命周期)。

您可以使用<c:forEach>在一定程度上解决这个问题。生产<p:tab> s 而不是 <p:tabView value> .

<p:tabView activeIndex="#{multiTabBean.activeTabIndex}">
<c:forEach items="#{multiTabBean.tabsList}" var="useCase" varStatus="loop">
<p:tab title="#{useCase.title}" closable="true">
<f:subview id="tab_#{loop.index}">
<h:panelGroup id="mainTempPanelGroupId" layout="block">
<ui:include src="#{useCase.path}" />
</h:panelGroup>
</f:subview>
</p:tab>
</c:forEach>
</p:tabView>

顺便说一下,很有趣的是,你以某种方式使用了 <f:subview>在您最初的尝试中,这在那边完全没用(已被 <p:tabView var> 考虑在内),但在这里实际上很有帮助(它在选项卡内容周围创建了一个新的 NamingContainer )。

关于JSF 动态地将 src 包含在 "ui:include src="#{bean.pagePath} 中”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com