[英]ADF: Load javascript resources conditionally
我的頁面上有以下行:
<af:resource type="javascript" source="JS/google.projected.overlay.js"/>
我需要在特定條件下加載此資源。 條件可以通過EL表達式計算。 所以我試過:
<af:panelGroupLayout visible="false" rendered="#{Condition}" id="pgl1">
<af:resource type="javascript" source="JS/google.projected.overlay.js"/>
</af:panelGroupLayout>
但它不起作用。 不管我的條件如何,腳本標簽總是呈現在頁面的頭部部分。
有誰知道如何處理這個問題? 有可能嗎?
正如文檔所說,您不能為此使用 af:resource 標簽
資源被添加到 af:document 組件以在呈現文檔時包含。
所以渲染條件不會在這里播放。 您可以查看這個ADF JavaScript Partitioning或A.9 Using JavaScript Library Partitioning,或者您可以通過管道將腳本代碼從 bean 方法導入頁面。 如果您在 bean 方法中評估條件,您可以在需要時將 bean 方法中的腳本添加到頁面中。 為此,您可以使用 ExtendedRenderKitService 之類的
// queue JavaScript into the page
FacesContext context = FacesContext.getCurrentInstance();
ExtendedRenderKitService erks =
Service.getService(context.getRenderKit(), ExtendedRenderKitService.class);
String script = "YOUR CODE HERE";
erks.addScript(context, script);
沒有對其進行測試,但是如果您將 render="#{Condition}" 更改為 render="${Condition}" 以實現急切的 EL 解析怎么辦?
鑒於腳本一旦加載就緩存在瀏覽器上,如果它是有條件的,它真的會有所不同嗎?
坦率
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.