Jsf 在<;中动态加载xhtml页面;p:tab>;使用EL
全部 我使用的是primefaces-3.0.M3 jar,我想在里面加载xhtml页面 我已经厌倦了下面的代码,但它不工作Jsf 在<;中动态加载xhtml页面;p:tab>;使用EL,jsf,primefaces,Jsf,Primefaces,全部 我使用的是primefaces-3.0.M3 jar,我想在里面加载xhtml页面 我已经厌倦了下面的代码,但它不工作 <p:tabView id="tabview" value="#{HomeBean.tabList}" var="pageUrl" bindi
<p:tabView id="tabview"
value="#{HomeBean.tabList}"
var="pageUrl"
binding="#{HomeBean.tabView}"
cache="true" widgetVar="tabviewV">
<p:tab id="tab" title="#{pageUrl}" closable="true" >
<ui:include src="#{pageUrl}"/>
</p:tab>
</p:tabView>
HomeBean.java中的代码
private List<String> tabList = new ArrayList<String>();
public HomeBean(){
tabList.add("Test1.xhtml");
tabList.add("Test2.xhtml");
tabList.add("Test3.xhtml");
}
public List<String> getTabList() {
return tabList;
}
public void setTabList(List<String> tabList) {
this.tabList = tabList;
}
private List tabList=new ArrayList();
公共HomeBean(){
tabList.add(“Test1.xhtml”);
tabList.add(“Test2.xhtml”);
tabList.add(“Test3.xhtml”);
}
公共列表getTabList(){
返回小报;
}
公共无效设置列表(列表列表列表){
this.tabList=tabList;
}
请给我一个解决方案。
高级中的Thx。我测试了您的代码,发现
{pageUrl}
为空,即使列表中有项目。您可以这样尝试:
<p:tabView id="tabview" widgetVar="tabview" binding="#{HomeBean.tabView}">
<c:forEach items="#{HomeBean.tabList}" var="pageUrl">
<p:tab title="#{pageUrl}" >
<ui:include src="#{pageUrl}" />
</p:tab>
</c:forEach>
</p:tabView>
我找到了解决方案,效果很好
<p:tabView id="tabview"
value="#{HomeBean.tabList}"
var="pageUrl" cache="true"
widgetVar="tabviewV">
<p:tab id="tab" title="#{pageUrl}" >
<iframe src="#{pageUrl}" width="100%" height="572px" style="border-width: 0PX;">
</iframe>
</p:tab>
</p:tabView>
它是如何“不起作用”的?你犯了什么错误?这是一个旧线程,但我今天遇到了这个问题。您的示例不起作用,因为ui:insert在整个页面呈现时只呈现一次,所以所有选项卡都将具有相同的内容(第一个选项卡的内容)。你是如何解决这个问题的?花了那么多时间试图让它工作!这是如此简单和工程!现在让iframe填充面板,并随着窗口大小的调整而增长。