1

我在我的应用程序中使用 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> 

示例.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 中?

4

2 回答 2

5

portal_normal.vm 文件被设计为门户页面的模板,包含在 Liferay 主题中。您不需要将任何 PrimeFaces 或 jQuery 相关资源添加到此模板的 head 部分。相反,只需创建一个 PrimeFaces portlet 并在您的 Facelet 视图中使用 h:head。如果您这样做,那么 PrimeFaces 将在 JSF 生命周期中自动添加所需的资源,Liferay Faces Bridge 将负责为您将它们注入到门户页面的 <head>...</head> 部分。我建议您查看primefaces3-portlet演示以获取更多信息。

于 2012-09-06T21:24:36.163 回答
0

JSF 2 期望所有资源都位于 webapp - 资源下

在这里你可以放置你的脚本。您可能想要创建一个名为“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">
于 2012-09-06T19:43:55.643 回答