我在我的应用程序中使用Primefaces 3.3.1,JSF 2.0和Liferay 6.0。我将我的JS文件包含在portal_normal.vm中,如下所示
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>
Prime面需要h:head才能包含在视图中。当我将h:head添加到我的xhtml时,没有导入任何js文件。能告诉我怎样才能将.js添加到h:head?
答案 0 :(得分:5)
portal_normal.vm文件旨在作为门户网站页面的模板,并包含在Liferay主题中。您不需要将任何PrimeFaces或jQuery相关资源添加到此模板的head部分。相反,只需创建一个PrimeFaces portlet并在Facelet视图中使用h:head。如果你这样做,那么PrimeFaces将在JSF生命周期中自动添加所需的资源,Liferay Faces Bridge将负责将它们注入&lt; head&gt; ...&lt; / head&gt;门户网站页面的一部分。我建议您查看primefaces3-portlet演示以获取更多信息。
答案 1 :(得分:0)
JSF 2期望所有资源都位于webapp - resources
下在这里你可以放置你的脚本。您可能想要创建一个名为“scripts”的子文件夹,然后使用此标记:
<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">