我正在努力找到一种在JSPX和Trinidad项目中在运行时包含动态确定页面的方法。当你看到我拥有的东西时,你会有一个想法,那就是:
<tr:panelAccordion>
<tr:showDetailItem
text="Test tab">
<jsp:include page=".test.jspx" /> <!-- This part is working fine -->
</tr:showDetailItem>
<jsp:scriptlet>
BackingTest backing = (BackingTest) session.getAttribute("backingTest");
for (CaseTabConfigurationDTO tab : backing.getTabs()) {
java.io.File f = new java.io.File(request.getRealPath(tab.getPagePath()));
if (f.exists()) {
pageContext.include(tab.getPagePath(), true);
}
}
</jsp:scriptlet>
</tr:panelAccordion>
jsp:include part工作正常,没有什么打破JSF生命周期。
jsp:scriplet部分成功包含了正确的页面。但是,它打破了JSF生命周期中的后续操作,包括仍然持久化使用useWindow =“true”打开的对话框的支持bean。
为了让它与Facelet一起投诉,从而不破坏JSF的生命周期。我尝试使用tr:forEach,c:forEach,ui:include,ui:重复方法而没有任何实际包含页面的运气。
你能为它分享一个合适的解决方案吗?提前谢谢!
答案 0 :(得分:1)
您可能希望重新配置项目,以便use Facelets with Trinidad。重新配置项目后,可以使用Facelets进行模板化。不过,您最终会使用xhtml
代替jspx
。
另见: