JSPXおよびトリニダードプロジェクトの実行時に動的に決定されたページを含める方法を見つけるのに苦労しています。私が持っているものを見ると、次のようなことがわかります。
<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部分は正常に機能しており、JSFライフサイクルを壊しているものはありません。
jsp:scriplet部分は、正しいページを含めるために正常に実行されます。ただし、useWindow = "true"を使用して開いたダイアログのバッキングBeanを引き続き保持するなど、JSFライフサイクルの後半のアクションを中断しています。
Faceletに不満を持たせるために、JSFのライフサイクルを壊さないようにします。tr:forEach、c:forEach、ui:include、ui:repeatアプローチを使用してみましたが、実際にページを含めることはできませんでした。
そのための適切な解決策を共有できますか?前もって感謝します!