2012-09-06 132 views
1

我在我的應用程序中使用Primefaces 3.3.1,JSF 2.0和Liferay 6.0。我已經包含在portal_normal.vm我的JS文件如下Primefaces 3.3.1和JSF 2.0

portal_normal.vm

<html class="#language("lang.dir")" dir="#language("lang.dir")" lang="$w3c_language_id"> 

<head> 
    <title>$the_title - $company_name</title> 
     <script src="$javascript_folder/jquery-1.7.2.min.js"></script> 
     <script src="$javascript_folder/javascript.js"></script> 
     <script src="$javascript_folder/jquery.tablesorter.min.js"></script> 
     <script src="$javascript_folder/jquery.tablesorter.pager.js"></script> 
     <script src="$javascript_folder/jquery.autocomplete.js"></script> 
     <script src="$javascript_folder/jquery.simplemodal.1.4.2.min.js"></script> 
     <script src="$javascript_folder/jquery.scrollTo.js"></script> 
     <script src="$javascript_folder/ui.datepicker.js"></script> 


    $theme.include($top_head_include) 
</head> 
<body></body> 
</html> 

sample.xhtml:

<div xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:p="http://primefaces.org/ui" 
    lang="en" xml:lang="en" style="padding-bottom: 8px;"> 
    <h:head> 
     <script type="text/javascript" src="#{lookupBean.themePath}/js/jquery-1.7.2.min.js" /> 
     <script type="text/javascript" src="#{lookupBean.themePath}/js/javascript.js" /> 
     <script type="text/javascript" src="#{lookupBean.themePath}/js/jquery.tablesorter.min.js" /> 
     <script type="text/javascript" src="#{lookupBean.themePath}/js/ui.datepicker.js" /> 
    </h:head> 
     <h:body></h:body> 
</div> 

總理面臨要求H:頭是包括在視圖中。當我將h:頭添加到我的xhtml時,沒有任何js文件正在導入。你能不能讓我知道如何將.js添加到h:head?

回答

0

JSF 2期望所有的資源下的webapp定位 - 資源

這裏,你可以把你的腳本。您可能希望創建一個名爲「腳本」子文件夾,然後使用這個標籤:

<h:outputScript library="js" name="common.js" /> 

全程導遊在這裏:

http://www.mkyong.com/jsf2/how-to-include-javascript-file-in-jsf/

編輯:是你的觀點確實需要命名空間。試試這個標題:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"> 
+0

我已經給我的xhtml原來的職位,我已經包括所有的命名空間。 – Sri

+0

@Sri你試過我關於h:outputScript的建議嗎? –

4

的portal_normal.vm文件被設計爲門戶頁面模板,包含Liferay的主題中。您不需要將任何PrimeFaces或jQuery相關資源添加到此模板的頭部分。相反,只需在Facelet視圖中創建一個PrimeFaces portlet並使用h:head即可。如果你這樣做了,那麼PrimeFaces會在JSF生命週期中自動添加所需的資源,Liferay Faces Bridge將負責將它們注入到門戶頁面的<主管> ... < /主管>部分。我建議你看看primefaces3-portlet演示瞭解更多信息。

+0

我剛剛試過,只有在也存在的情況下才適用。它是否應該沒有? –

+0

我認爲h:head和h:body標籤應該出現在每個JSF視圖中。 –