簡體   English   中英

以編程方式創建一個 <ui:include src=“…”/> 在支持豆

[英]Programmatically create an <ui:include src=“…”/> in backing bean

在JSF頁面中,我有:

<h:form id="form">
   <h:panelGroup id="content" layout="block"/>
</h:form>

在Java SessionScoped bean中,我有一個方法:

public void fillContent()
{
   UIComponent content = FacesContext.getCurrentInstance().getViewRoot().findComponent("form:content");
   content.getChildren().clear();
   content.getChildren().add(/*New <ui:include src="Page.xhtml"/>*/);
}

<ui:include src="Page.xhtml"/>作為content子級插入的Java代碼是什么? 在哪里可以找到所有JSF Java名稱映射的列表?

謝謝

不幸的是ui:include被實現為標簽處理程序。 這意味着在構建組件樹並且沒有相應的UIComponent類時對其進行評估和執行。

為了實現您的目標,您必須在保留對在構造樹期間可訪問的faceletContext的引用之后,使用javax.faces.view.facelets.FaceletContext#includeFacelet之類的facelets API。 這不是一個簡單的方法,我強烈建議改寫您的問題並尋找其他解決方案。

我不知道任何有關標簽組件/處理程序映射的官方指南,但是我敢肯定,“ Core Java Server Faces”之類的書籍會對此有所幫助。

您可以嘗試從facelets入手,例如:

<h:form id="form">
  <ui:include src="#{content.path}"/>
</h:form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM