jsf - 如何创建 <ui :include> tag programmatically?

标签 jsf jsf-2 primefaces

我正在尝试创建一个动态 TabView,其中每个选项卡都在 <ui:include> 的帮助下显示不同的 xhtml 页面标签。

以下是我尝试执行的代码片段

    Tab tab= new Tab();  
    Portal portal=itr.next();
    tab.setTitle(portal.getPortal_name());
    tab.setId(portal.getPortal_name());
    /*   Code to generate <ui:include> tag
     *   and add it to tab
     */
    tabView.getChildren().add(tab);

我搜索了很多,但找不到任何生成 <ui:include> 的方法标签。
谁能建议一种方法来做到这一点?

最佳答案

使用 FaceletContext#includeFacelet() :

FaceletContext faceletContext = (FaceletContext) FacesContext.getCurrentInstance().getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
faceletContext.includeFacelet(tab, "include.xhtml");
请注意,在 View 构建期间未运行时,此构造在 MyFaces 中失败。它适用于莫哈拉。

无关 到具体问题,你知道<p:tabView value>吗?哪个可以带收藏?无需以编程方式创建选项卡。另见例如How to add button for adding new tabs near last tab?

关于jsf - 如何创建 <ui :include> tag programmatically?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14745259/

相关文章:

jsf - java.lang.NoClassDefFoundError : org/ajax4jsf/resource/InternetResourceBuilder 错误

java - 建立移动网站

jsf - Primefaces 文件 uploader 不调用处理程序方法

jsf-2 - 没有从 <h :selectOneRadio> which is placed in side a <h:panelGrid> 调用 valueChangeListener

javascript - 使用 p :commandButton and p:dialog 时出现 Javascript 错误

java - Apache Tomahawk FileUpload 不工作

java - 将字符串转换为小写以在 xhtml 中进行属性绑定(bind)?

jsf-2 - 外部 facelets 模板 - 它是否被缓存?

ajax - 素面 : how to use growl for notifications without user interaction

jsf-2 - primefaces 使用 pojo 自动完成