Primefaces 3.3.1 and JSF 2.0



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

素面要求h:head包含在视图中。当我将h:head添加到xhtml时,没有任何js文件被导入。你能告诉我如何将.js添加到h:head吗?

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

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

在这里你可以放置你的脚本。你可能想创建一个名为"脚本"的子文件夹,然后使用这个标签:

<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">

最新更新