2015-04-16 34 views
0

我有一個幾頁的ADF項目(JDeveloper 11)。所有頁面加載保存在頂部導航欄的部分文件,如:將一個<script>標記添加到<head>部分從部分加載通過af:declarativeComponent在Oracle ADF

mainFile.jspx

<?xml version='1.0' encoding='UTF-8'?> 
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" 
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> 

    <jsp:directive.page contentType="text/html;charset=UTF-8"/> 
    <f:view> 
    <af:document id="d1""> 

     <af:declarativeComponent id="dc0" viewId="/partials/header-small.jspx" /> 
.... 

在部分文件我有這樣的:

頭,small.jspx

<?xml version='1.0' encoding='UTF-8'?> 
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" 
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> 

    <jsp:directive.page contentType="text/html;charset=UTF-8"/> 

    <link rel="stylesheet" href="some-stylesheet-file.css"/> 

    <script src="javascripts/modernizr.js"></script> 
    <script src="javascripts/fonts.js"></script> 

    <header class="top_header" role="presentation"> 
.... 

像現在的link和在<body>部分添加了標籤,但我希望它們在<head>中。我無法在任何地方找到正確的方法來做到這一點。它甚至有可能嗎?

此時我無法實現模板,因爲該項目是由不可用的其他人創建的,而我只負責前端。

回答

1

要拿到劇本和<head>標籤內的鏈接,恐怕你需要把你的樣式表和內mainFile.jspx JavaScript資源:

<af:document> 
    <af:resource type="javascript" source="../javascripts/modernizr.js"> 
    <af:resource type="javascript" source="../some-stylesheet-file.css"> 
    <af:form> 
    ... 
    </af:form> 
</af:document> 

那麼,你會不會可能是能夠獲得高度的封裝。 更多詳細資料,請點擊: https://blogs.oracle.com/jdevotnharvest/entry/gotcha_when_using_javascript_in

+0

這是一個非常倒退的方式,用於這種「升高」的語言。我更喜歡體內不那麼兼容的鏈接,而不是將它們添加到每個頁面。 –

+0

警告詞 - 除非將您的JavaScript引用放在mainFile.jspx中,否則它可能不適用於每種情況。取決於用例,但如果通過AJAX調用加載header-small.jspx,則可能不會處理引用。您應該檢查,應用程序使用單個頁面的可能性很大(基於帶碎片的任務流)。然後,您只需將鏈接添加到一個文件。是的,倒退 - 我知道。 –

+0

它不是單個頁面,大約有10個jspx頁面,其中我添加了af:declarativeComponent標記來加載一些偏分量。他們在header-small.jspx中處理,我只是希望將它們移動到。 –

相關問題