The button/link/text component needs to have a Form in its ancestry. Please add [RESOLVIDO]

Olá,
Iniciei um projeto web com JSF 2, glassfish 3.1 e primefaces 2.2.1 e estou com o seguinte problema:
Ao colocar um menuBar aparece a segiunte mensagem: The button/link/text component needs to have a Form in its ancestry. Please add .
Eis o código da minha página:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link href="#{facesContext.externalContext.requestContextPath}/css/conv115.css" rel="stylesheet" type="text/css" />
        <link href="#{facesContext.externalContext.requestContextPath}/css/skinSiatWeb/jquery-ui-1.8.11.custom.css" rel="stylesheet" type="text/css" />
        <title>Convênio 115</title>
    </h:head>

    <h:body>
        <p:spacer height="10"/>
        <div id="principal">
            <div id="top"/>

            <ui:insert name="menu">
                <h:form>
                    <div id="menu">
                        <p:menubar>
                            <p:submenu label="File" icon="ui-icon ui-icon-document">
                                <p:menuitem value="Sair" action="#{usuarioMB.efetuarLogoff}" ajax="false"/>
                            </p:submenu>
                        </p:menubar>
                    </div>
                </h:form>
            </ui:insert>

            <div id="content">
                <ui:insert name="content">Content</ui:insert>
            </div>

            <div id="bottom">
                <p >
                    &lt;h:outputLabel value="Site Desenvolvido pelo Corpo Técnico da © Todos os Direitos Reservados"
                                   styleClass="campoBranco"/&gt;
                </p>
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/h:body&gt;
&lt;/html&gt;

Agradeço desde já quem puder me dizer como resolver este problema.

Bom estava usando o Netbeans e tive esse problema e me parece que o problema é do jar do mojarra que deve ser 2.1.0 voltando pra versão 2.0.4 resolveu o problemas, num testei pois utilizo o Eclipse e lah jah está o 2.0.4 e nunca deu esse problema…

o <p:menu> deve estar dentro da tag <h:form>
Isso resolve o seu problema.

Abs,

Dentro da div

Oi luxu,
Vi em alguns sites falando sobre este problema com o mojarra 2.1 (Eu uso Netbeans). Parece que é bug desta versão mesmo. Vou testar. Valeu pela dica.

caputojf1,
Já havia testado com o <h:form> dentro da Div…sem sucesso. De qualquer forma, valeu pela dica. Vou continuar tentando.

Estava com o mesmo problema.

Com a versao 2.0.4 do Mojarra funcionou perfeitamente.

De fato, ao utilizar o mojarra 2.0.4 o problema é resolvido.

Valeu pela ajuda de todos.

Só para deixar registrado no tópico, para quem deseja cotinuar com o 2.1+ em vez de voltar ao 2.0.4 é só mudar no xml :

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>

para

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Production</param-value> </context-param>

Belíssima solução: Assim para de dar a mensagem de erro, e o problema continua ali… LINDO… ¬¬

[quote=edudebom]Só para deixar registrado no tópico, para quem deseja cotinuar com o 2.1+ em vez de voltar ao 2.0.4 é só mudar no xml :

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>

para

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Production</param-value> </context-param>[/quote]

Cara obrigado pelo Post. Resolveu meu problema.

A versão 2.1.4 (Atual) resolveu o problema.

E detalhe: nem precisa mudar de Development para Production… uashuhasuhsa

Opa! Bom saber disso. Valeu pela informação.

Desculpa “ressucita” o tópico + eu to precisando de uma ajuda…

como eu faço pra troca a versão do mojarra?

outra coisa, com a versão nova do NetBeans 7.1 será que esse bug foi corrijido?

[quote=dieego_]A versão 2.1.4 (Atual) resolveu o problema.

E detalhe: nem precisa mudar de Development para Production… uashuhasuhsa[/quote]

Vlw, resolvido !

[quote=edudebom]Só para deixar registrado no tópico, para quem deseja cotinuar com o 2.1+ em vez de voltar ao 2.0.4 é só mudar no xml :

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>

para

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Production</param-value> </context-param>[/quote]

funcionou!!!
Tb estava com o mesmo probrema e agora foi resouvido
Valeu!

Haha

Acabou de acontecer comigo.

Valeu!

[quote=elias.ss][quote=edudebom]Só para deixar registrado no tópico, para quem deseja cotinuar com o 2.1+ em vez de voltar ao 2.0.4 é só mudar no xml :

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>

para

<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Production</param-value> </context-param>[/quote]

funcionou!!!
Tb estava com o mesmo probrema e agora foi resouvido
Valeu![/quote]

Pra mim também funcionou dessa forma, não vejo problema algum mudar essa tag, já que informa para o jsf trabalhar em ambiente final(produção).

Desculpa ressuscitar tópico, mas tem muita gente que só sabe criticar, valeu pela dica.

Abraços.