您好我每次在网页上输入时都会在服务器控制台中收到以下内容: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吗?
谢谢
答案 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>