2012-04-18 42 views
7

我想使用(Primefaces with TwitterBootstrap)。目前DropDown菜單不工作,例如,一個p:dataTable是存在的。我已經想通了,它的工作(沒有任何Primefaces組件),如果我有h:head遵循以下規則:JSF h:outputScript排序和PrimeFaces jQuery

<h:head> 
    <h:outputScript library="js" name="bootstrap.js"/> 
    <h:outputScript library="primefaces" name="jquery/jquery.js"/> 
    ... 
</h:head> 

如果我換了排序(第一的jquery.js,比bootstrap.js),下拉菜單壞了。我的問題是,在呈現的HTML輸出中使用PrimeFaces組件時,PrimeFaces(jquery.js和primefaces.js)使用的腳本總是在h:head的手動輸入之前。

<script src="/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces"></script> 
<script src="/javax.faces.resource/primefaces.js.jsf?ln=primefaces"></script> 
<script src="/javax.faces.resource/bootstrap.js.jsf?ln=js"></script> 

我怎樣才能jquery.js之前導入bootstrap.js

回答

12

如果問題與資源的包含順序有關,您應該查看PrimeFaces團隊的以下博文:Customizable Resource Ordering

您可以在h:head元素中定義一個first構面。放置在那裏的元素將在PrimeFaces資源之前加載。

<h:head> 
    <f:facet name="first"> 
     <h:outputScript library="js" name="bootstrap.js"/> 
    </f:facet> 
</h:head>