Java jsf

Estou começando um trabalho de JSF e estou com muita dificuldade por ser novo pra mim. Alguém ai para ajudar?

O trabalho é esse
{
Implementar um sistema web para o controle de agenda de compromissos. O sistema deve se comportar de acordo com as seguintes funcionalidades:
 O usuário cria diversas agendas. Uma agenda deve possuir um título.
 O usuário cadastra compromissos em qualquer data válida do calendário. Um compromisso pode ser acrescentado a qualquer agenda. Um compromisso deve possuir um título, um assunto, um local, hora de início e hora de término.
 O usuário visualiza os compromissos de cada agenda através de diferentes filtros, tais como dia atual, semana, mês.
 O usuário remove ou edita os dados de qualquer compromisso/agenda.
Ao final, relatar impedimentos e lições aprendidas.
}

Estou na parte onde copiei do site primarefaces o código html e o codigo.java para criar um login e senha mas ao colar no netbeans no index o código html deu a seguinte mensagem.

" The form component needs to have a UIForm in its ancestry. Suggestion: enclose the necessary components within <h:form>
The form component needs to have a UIForm in its ancestry. Suggestion: enclose the necessary components within <h:form>
"
Alguma dica?

`veja se os componentes (inputs e buttons) estão dentro da das tags
< h:form>

< /h:form>
`

Sim estão…
Só copiei do primarefaces e colei dentro da teg <h:head>

        <h:form>            
<h:outputLink value="javascript:void(0)" onclick="PF('dlg').show();" title="login">
    <p:graphicImage name="/demo/images/login.png" />
</h:outputLink>

<p:growl id="growl" sticky="true" showDetail="true" life="3000" />

<p:dialog header="Login" widgetVar="dlg" resizable="false">
    <h:panelGrid columns="2" cellpadding="5">
        <h:outputLabel for="username" value="Username:" />
        <p:inputText id="username" value="#{userLoginView.username}" required="true" label="username" />

        <h:outputLabel for="password" value="Password:" />
        <p:password id="password" value="#{userLoginView.password}" required="true" label="password" />

        <f:facet name="footer">
            <p:commandButton value="Login" update="growl" actionListener="#{userLoginView.login}"
                             oncomplete="handleLoginRequest(xhr, status, args)" />
        </f:facet>  
    </h:panelGrid>
</p:dialog>

</h:form>