2

我对 PrimeFaces 完全陌生,如果这是一个愚蠢的问题,我很抱歉。

根据 primefaces.org 网站,不需要配置。您只需将 primefaces jar 放入您的类路径并将名称空间添加到页面中,就是这样。这正是我所做的,我可以访问和创建 primefaces 组件,但没有应用任何样式。

这是页面源的样子

<!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:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

<head><title>...</title></head>

<body>
    <p:accordionPanel>
        <p:tab title="First Tab Title">
            <h:outputText value= "Lorem"/>
        </p:tab>
        <p:tab title="Second Tab Title">
            <h:outputText value="Ipsum" />
        </p:tab>
    </p:accordionPanel>
</body>
</html>

这就是渲染的

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

<head><title>...</title></head>

<body><div id="j_id_3" class="ui-accordion ui-widget ui-helper-reset ui-hidden-container" role="tablist"><h3 class="ui-accordion-header ui-helper-reset ui-state-default ui-state-active ui-corner-top" role="tab" aria-expanded="true"><span class="ui-icon ui-icon-triangle-1-s"></span><a href="#" tabindex="-1">First Tab Title</a></h3><div id="j_id_3:j_id_4" class="ui-accordion-content ui-helper-reset ui-widget-content" role="tabpanel" aria-hidden="false">Lorem</div><h3 class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" role="tab" aria-expanded="false"><span class="ui-icon ui-icon-triangle-1-e"></span><a href="#" tabindex="-1">Second Tab Title</a></h3><div id="j_id_3:j_id_6" class="ui-accordion-content ui-helper-reset ui-widget-content ui-helper-hidden" role="tabpanel" aria-hidden="true">Ipsum</div><input type="hidden" id="j_id_3_active" name="j_id_3_active" value="0" /></div><script id="j_id_3_s" type="text/javascript"><!--
PrimeFaces.cw('AccordionPanel','widget_j_id_3',{id:'j_id_3',active:0});
//--></script>
</body>
</html>

如您所见,primefaces 组件被渲染,并附加了所有 css 样式,但没有引用任何渲染的样式表。这应该自动呈现,还是我应该添加到页面中?

我正在使用 myFaces 2.1.5、PrimeFaces 3.5,并且在 Tomcat 7.0.26 上运行它

4

1 回答 1

6

<head>与 Primefaces的不兼容,<h:head>会自动包含所有必要的 JavaScript 文件,用于布局的 Css 文件,因此当您不使用它时,不会自动包含 Css。

如果你想自动包含 CSS,你应该使用<h:head>,而不是<head>

<h:head>
// ...
</h:head>
<h:body>
// ...
</h:body>
于 2013-04-27T07:41:53.860 回答