0

我正在使用 Primefaces 5.2,这是我的索引:

<!DOCTYPE html>
<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Demo</title>
    <!-- Incluyendo CSS: -->
    <link rel="stylesheet" href="./css/style.css" type="text/css" media="all" />
</h:head>
<h:body >

     <div id="header">
        <h:form id="ribbon">
            <ui:include src="/ribbon.xhtml"/>               
        </h:form>
    </div>

    <div id="section">
        <ui:include src="#{navegacion.pageName}.xhtml"/> 
    </div>

    <div id="footer">
        <ui:include src="/footer.xhtml"/>
    </div>
</h:body>
</html>

还有我的导航 Bean:

package prueba;

import javax.faces.bean.ManagedBean;
import javax.faces.view.*;

@ManagedBean
@ViewScoped
public class navegacion {

    private String pageName="condominios";

    public navegacion() {

    }          

    public String getPageName() {
        return pageName;
    }

    public void setPageName(String pageName) {
        this.pageName = pageName;
    }
}

这就是问题所在:ribbon.xhtml 有一个像菜单一样的功能区组件来访问整个站点,明智的想法是这样放置:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://java.sun.com/jsf/facelets">
<h:body>    
<!-- Aqui agregamos un menu ribbon -->
    <p:ribbon>
        <!-- Ribbon Code Here -->
    </p:ribbon>
</h:body>
</ui:composition>

但这消除了 CSS 样式并且不能正常工作,相反我不得不这样做:

<!DOCTYPE html>
<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Ribbon</title>

    <link rel="stylesheet" href="./css/style.css" type="text/css" media="all" />    
</h:head>

    <p:ribbon >
        <!-- Ribbon Code Here -->
    </p:ribbon>
</html>

这可以正常工作,并且嵌入在 Primefaces 中的 css 主题也可以工作,但是如果我在 footer.xhtml 功能区中使用另一个 html 标记失败,为什么我不得不在ribbon.xhtml 中使用 HTML 标记,这对我来说是个谜。

事实上,我在这个布局方案(Ribbon/navigationBean(content)/footer)中使用 ui:include / ui:component 时遇到问题,因为我放入 content.xhtml 中的每个组件(我用 navigationBean 调用它,参见 index.xhtml ) 不工作。

我认为这两个问题是相关的,也许解决第一个问题是解决另一个问题的关键。

我正在尝试使用模板解决问题,但它也不起作用。

4

1 回答 1

0

问题是导入,在 Bean 中我放了这个:

import javax.faces.bean.ManagedBean;
import javax.faces.view.*;

@ManagedBean
@ViewScoped

错了,正确的导入是这样的:

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped

这解决了我早期评论的两个问题。

于 2015-05-07T21:00:24.583 回答