jsf-2.2:f:查找已查看的合同属性,但未在顶级使用

时间:2015-03-14 23:05:42

标签: jsf jsf-2.2 contracts

您好我每次在网页上输入时都会在服务器控制台中收到以下内容:f:view contracts attribute found, but not used at top level

我正在使用jsf模板,我有一个default.xhtml模板文件,如下所示:

<!DOCTYPE html>
<html ...xmlns...>
<f:view contracts="default" locale="#{bbClevcore.locale}">
  <h:head>
    ...
  </h:head>
  <h:body id="body">
    <header>
      ...
    </header>

    <section>
      <h:panelGroup layout="block">
        <h:panelGroup id="section" layout="block">
          <ui:insert name="section" />
        </h:panelGroup>
      </h:panelGroup>
    </section>

    <footer>
      ...
    </footer>
    </ui:insert>

  </h:body>
</f:view>
</html>

我有以下合约目录:

-src /主/ web应用/合同/默认/普通/ CSS / main.css的

在实际页面中:index.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:cc="http://xmlns.jcp.org/jsf/composite/components"
    template="/templates/default.xhtml">
    ...
    <ui:define name="section">
       ....
    </ui:define>
</ui:composition>

合同有效,因为当我将合同价值从默认更改为替代,在另一个文件夹中有另一个main.css时,页面会进行更改并显示另类风格。我在正确的位置使用f:view吗?

谢谢

1 个答案:

答案 0 :(得分:0)

无法在全局模板中设置合同。 JSF允许 仅在第一个请求的文件(Template-Client)中设置它。试试这个!

模板:

<!DOCTYPE html>
<html ...xmlns...>
  <h:head>
    ...
  </h:head>

  <h:body id="body">
    <header>
      ...
    </header>

    <section>
      <h:panelGroup layout="block">
        <h:panelGroup id="section" layout="block">
          <ui:insert name="section" />
        </h:panelGroup>
      </h:panelGroup>
    </section>

    <footer>
      ...
    </footer>

  </h:body>
</html>

模板的客户端:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

    <f:view contracts="alternative">
        <ui:composition template="/templates/default.xhtml">
            ...
            <ui:define name="section">
               ....
            </ui:define>
            ...
        </ui:composition>
    </f:view>

</ui:composition>