tutorial librerias etiquetas español ejemplo define componentes anotaciones jsf jsf-2

jsf - librerias - no se ha definido ningún componente "cabeza"



ui define jsf (2)

Quiero implementar la página JSF con AJAX. Este es el código de la página JSF:

<?xml version=''1.0'' encoding=''UTF-8'' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <ui:insert name="header"> <ui:include src="header.xhtml"/> </ui:insert> </h:head> <h:body> <h1><img src="resources/css/images/icon.png" alt="NVIDIA.com" /> Settings Center</h1> <!-- layer for black background of the buttons --> <div id="toolbar" style="margin: 0 auto; width:1180px; height:30px; position:relative; background-color:black"> <!-- Include page Navigation --> <ui:insert name="Navigation"> <ui:include src="Navigation.xhtml"/> </ui:insert> </div> <div id="greenBand" class="ui-state-default ui-corner-allh" style="position:relative; top:35px; left:0px;"> <h:graphicImage alt="Application Settings" style="position:relative; top:-20px; left:9px;" value="resources/images/logo_application_settings.png" /> </div> <div id="main" style="margin: 0 auto; width:1190px; height:700px; position:absolute; background-color:transparent; top:105px"> <div id="mainpage" style="margin: 0 auto; width:1190px; height:500px; position:absolute; background-color:transparent; top:80px"> <div id="settingsdiv" style="width:350px; height:400px; position:absolute; background-color:r; top:20px; left:1px"> <h:panelGrid columns="2"> <h:panelGroup>User Session Timeout</h:panelGroup> <h:panelGroup> <h:selectOneMenu value="#{ApplicationController.settingValue(''SessionTTL'')}"> <f:selectItem itemValue="one" itemLabel="Option one" /> <f:selectItem itemValue="two" itemLabel="Option two" /> <f:selectItem itemValue="three" itemLabel="Option three" /> <f:selectItem itemValue="custom" itemLabel="Define custom value" /> <f:ajax render="input" /> </h:selectOneMenu> <h:panelGroup id="input"> <h:inputText value="#{ApplicationController.settingValue(''SessionTTL'')}" rendered="#{bean.type == ''custom''}" required="true" /> </h:panelGroup> </h:panelGroup> <h:panelGroup>Maximum allowed users</h:panelGroup> <h:panelGroup>#{ApplicationController.settingValue(''MaxUsersActive'')}</h:panelGroup> </h:panelGrid> </div> <div id="settingslayer" style="width:350px; height:400px; position:absolute; background-color:transparent; top:20px; left:400px"> </div> <div id="settingspanel" style="width:350px; height:400px; position:absolute; background-color:transparent; top:20px; left:800px"> </div> </div> </div> </h:body> </html>

Cuando cargo la página obtengo este error:

Uno o más recursos tienen el objetivo de "cabeza", pero no se ha definido ningún componente "cabeza" dentro de la vista.

Este es el código del encabezado:

<?xml version=''1.0'' encoding=''UTF-8'' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <title>Settings Center</title> <link href="resources/css/helper.css" media="screen" rel="stylesheet" type="text/css" /> <link href="resources/css/dropdown.css" media="screen" rel="stylesheet" type="text/css" /> <link href="resources/css/default.advanced.css" media="screen" rel="stylesheet" type="text/css" /> <!--[if lt IE 7]> <script type="text/javascript" src="js/jquery/jquery.js"></script> <script type="text/javascript" src="js/jquery/jquery.dropdown.js"></script> <![endif]--> <!-- / END --> </html>

El Ajax no funciona y este mensaje de error aparece cuando cargo la página. Tal vez me falta algo para agregar. ¿Cómo puedo arreglar el código?

Mis mejores deseos Peter


Intenta poner <ui:composition> dentro de <html> y alrededor de su contenido en header.xhtml.


Bueno, supongo que necesitas editar tu header.xhtml como este

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <ui:composition> <title>index</title> <h:head> <link rel="stylesheet" href="style.css" type="text/css" media="screen"/> <script>.... </script> </h:head>

Asegúrese de usar <h:head> - y no <head> .