The button/link/text component needs to have a Form in its ancestry. Please add <h:form>

Galera,

Me ajuda com duas coisas ambas em destaque em azul na image abaixo.

Estou usando o JSF 2.0 e PrimeFaces 3.2 porém apresenta esta mensagem:

The button/link/text component needs to have a Form in its ancestry. Please add <h:form>.

E outra coisa: Ele não está validando o campo “Linha de ônibus” quando não coloco nada.

Sabem o que pode ser…?

<?xml version="1.0" encoding="UTF-8"?>

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

    <f:view contentType="text/html">


        <h:head>
            <f:facet name="first">
                <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
                <title>Bus Control</title>
            </f:facet>
        </h:head>
        
        <h:body>

            <p:layout fullPage="true">
               
                <p:layoutUnit position="north" size="100" resizable="true" closable="true" collapsible="true">
                    <h:form>
                        <div style="text-align: right">
                            <div style="text-align: left">
                                <p:commandLink action="\index.xhtml" value="[Logotipo do sistema]"/>
                            </div>
                            <a id="salut">Boa noite, </a>
                            <h:commandLink action="http://www.oi.com.br" value="#{usuario1.login}"/>
                            <br></br>
                            <h:link outcome="#{usuario1.sair()}" value="Sair" />
                        </div>
                    </h:form>
                </p:layoutUnit>

                <p:layoutUnit position="south" size="100" closable="true" collapsible="true">
                    <h:outputText value="Alguma coisa"/>
                </p:layoutUnit>

                <p:layoutUnit position="west" size="170" header="Menu" collapsible="true">
                    <p:menu>
                        <p:menuitem value="Pesquisar trânsito" url="/faces/Rastrear_Transito.xhtml" />
                        <p:menuitem value="Cadastrar monitoramento" url="/faces/monitorabus.xhtml" />
                        <p:menuitem value="Monitorar Ônibus" url="/faces/monitorabus_.xhtml" />
                        <p:menuitem value="Monitorar" url="http://www.primefaces.org/themes.html" />
                        <p:menuitem value="Trânsito" url="http://www.primefaces.org/themes.html" />
                    </p:menu>
                </p:layoutUnit>

                <p:layoutUnit position="center">
                    <script type="text/javascript">
                        PrimeFaces.locales['pt'] = {  
                            closeText: 'Fechar',  
                            prevText: 'Anterior',  
                            nextText: 'Próximo',  
                            currentText: 'Começo',  
                            monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],  
                            monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'],  
                            dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],  
                            dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],  
                            dayNamesMin: ['D','S','T','Q','Q','S','S'],  
                            weekHeader: 'Semana',  
                            firstDay: 1,  
                            isRTL: false,  
                            showMonthAfterYear: false,  
                            yearSuffix: '',  
                            timeOnlyTitle: 'Horas',  
                            timeText: 'Tempo',  
                            hourText: 'Hora',  
                            minuteText: 'Minuto',  
                            secondText: 'Segundo',  
                            currentText: 'Agora',  
                            ampm: false,  
                            month: 'Mês',  
                            week: 'Semana',  
                            day: 'Dia',  
                            allDayText : 'Todo Dia'  
                        }; </script>


                    <div id="formulario">
                        <h:form id="form1">
                            <h:panelGrid columns="4" cellspacing="10">

                                <h:outputText value="Data início: "/>
                                <p:calendar required="true" locale="pt" requiredMessage="Você não preencheu a data inicial." showButtonPanel="true" size="10" effect="fold" id="ptCal1"/> 
                                <h:outputText value="Data final: "/>
                                <p:calendar required="true" locale="pt" requiredMessage="Você não preencheu a data final." showButtonPanel="true" mindate="20/05/2013" maxdate="27/05/2013" size="10" effect="fold" id="ptCal2"/>
                                <h:outputText value="Hora início: "/>
                                <p:calendar required="true" requiredMessage="Você não preencheu a hora inicial." locale="pt" pattern="HH:mm" size="10" effect="fold" timeOnly="true" />
                                <h:outputText value="Hora final: "/>
                                <p:calendar required="true" requiredMessage="Você não preencheu a hora final." locale="pt" pattern="HH:mm" size="10" effect="fold" timeOnly="true" />
                                <h:outputText value="Linha de ônibus: "/>
                                <p:autoComplete rendered="true" requiredMessage="Você não preencheu a linha de ônibus." value="#{Bean.text}" completeMethod="#{Bean.complete}"/>
                                <h:outputText/>
                                <h:outputText/>
                                <h:outputText/>
                                <!--<p:commandButton action="refreshThePage" inline="true" value="Enviar"/>-->
                                <h:commandButton value="Imprimir" action="refreshThePage"></h:commandButton>
                            </h:panelGrid>
                            <p:messages/>
                        </h:form>

                    </div>

                </p:layoutUnit>

            </p:layout>

        </h:body>

    </f:view>
</html>

Uma situação já está resolvida. Não estava validando o campo “linha do ônibus”, pois eu tinha confundido os atributos “rendered” com “required”.
Já corrigi.

Mas ainda não entendo o motivo da mensagem:
The button/link/text component needs to have a Form in its ancestry. Please add <h:form>.