[RESOLVIDO] Template JFS - Problema com o Form

9 respostas
E

Boa noite pessoal,
estou tentando montar meu primeiro template e estou tendo algumas dificuldades.
eu criei meu template (padrao.xhtml) e coloquei um menu nele, só que ele fica mandando a seguinte mensagem:

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

parece que ele ta reclamando de um form, mais eu ja coloquei e mesmo assim continua, abaixo está o meu codigo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<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.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Meu Sistema</title>
        <style type="text/css">
            body {background-color: #eeeeee; font-size: 12px}
        </style>
    </h:head>
    <h:body>
        <div align="center">
            <p:layout style="min-width:1020px;max-width:1020px;min-height:600px"> 
                <p:layoutUnit position="north" size="100"> 
                    <h:graphicImage url="/img/topo.jpg" />
                </p:layoutUnit> 

                <p:layoutUnit position="west" size="220"> 
                    <ui:insert name="menu">
                        <h:form>
                            <p:menu style="width: 200px">
                                <p:submenu label="Cadastros">
                                    <p:menuitem value="Apartamento" icon="ui-icon-star" url="/apartamento/cadastrar.jsf"/>
                                    <p:menuitem value="Funcionario" icon="ui-icon-star" url="/funcionario/cadastrar.jsf"/>
                                    <p:menuitem value="Cliente" icon="ui-icon-star" url="/cliente/cadastrar.jsf"/>
                                </p:submenu>
                                <p:submenu label="Hospedgem">
                                    <p:menuitem value="Hospedar" icon="ui-icon-home" />  
                                </p:submenu>
                                <p:submenu label="Ação">
                                    <p:menuitem value="Sair" icon="ui-icon-close" />  
                                </p:submenu>
                            </p:menu>
                        </h:form>
                    </ui:insert>
                </p:layoutUnit> 
                <p:layoutUnit position="center"> 
                    <ui:insert name="centro">
                        O que estiver aqui será substituido!
                    </ui:insert>
                </p:layoutUnit> 
            </p:layout> 
        </div>
    </h:body>

</html>

minha index.xhtml:

<?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:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <ui:decorate template="/template/padrao.xhtml">
        <ui:define name="centro">
            Aqui é o centro do index!
        </ui:define>
    </ui:decorate>
</html>

se alguem poder me ajudar eu agradeço :)

9 Respostas

denis_gariglio

Insira a tag

assim que abrir o body e antes de fechar, da uma olhada em como coloquei no exemplo que vc mandou.

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE html>  
<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.org/ui"  
      xmlns:f="http://java.sun.com/jsf/core">  
  
    <h:head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
        <title>Meu Sistema</title>  
        <style type="text/css">  
            body {background-color: #eeeeee; font-size: 12px}  
        </style>  
    </h:head>  
    <h:body>  
    <h:form id="form">
        <div align="center">  
            <p:layout style="min-width:1020px;max-width:1020px;min-height:600px">   
                <p:layoutUnit position="north" size="100">   
                    <h:graphicImage url="/img/topo.jpg" />  
                </p:layoutUnit>   
  
                <p:layoutUnit position="west" size="220">   
                    <ui:insert name="menu">  
                        <h:form>  
                            <p:menu style="width: 200px">  
                                <p:submenu label="Cadastros">  
                                    <p:menuitem value="Apartamento" icon="ui-icon-star" url="/apartamento/cadastrar.jsf"/>  
                                    <p:menuitem value="Funcionario" icon="ui-icon-star" url="/funcionario/cadastrar.jsf"/>  
                                    <p:menuitem value="Cliente" icon="ui-icon-star" url="/cliente/cadastrar.jsf"/>  
                                </p:submenu>  
                                <p:submenu label="Hospedgem">  
                                    <p:menuitem value="Hospedar" icon="ui-icon-home" />    
                                </p:submenu>  
                                <p:submenu label="Ação">  
                                    <p:menuitem value="Sair" icon="ui-icon-close" />    
                                </p:submenu>  
                            </p:menu>  
                        </h:form>  
                    </ui:insert>  
                </p:layoutUnit>   
                <p:layoutUnit position="center">   
                    <ui:insert name="centro">  
                        O que estiver aqui será substituido!  
                    </ui:insert>  
                </p:layoutUnit>   
            </p:layout>   
        </div>  
     </h:form>
    </h:body>  
  
</html>

[]s

E

denis_gariglio:
Insira a tag assim que abrir o body e antes de fechar, da uma olhada em como coloquei no exemplo que vc mandou.

Valeu por Responder denis_gariglio :slight_smile:
Fiz o que você falou, mais ele ainda ta reclamando do form :confused:
será se pode ser algum bug do meu netbeans?
Abraço

denis_gariglio

Fala Eduardo, cara posta o log do erro aqui por favor.

[]s

E

fala denis, desculpa a demora cara é que eu tava meio aperriado no trabalho.
cara no log não ta saindo nada :confused:

E

tava pesquisando na internet, e vi que esse aviso tem a ver com um problema com mojarra, não sei direito o que é isso mas acho que é alguma erro do primefaces.
achei tambem uma solução, que muda um trecho do web.xml do projeto:

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

para

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

Obrigado denis por tentar me ajudar, valeu :slight_smile:

denis_gariglio

Fala Eduardo … opa q bom q deu certo =)

Abraços e boa sorte com seu projeto

Hebert_Coelho

eduardos:
tava pesquisando na internet, e vi que esse aviso tem a ver com um problema com mojarra, não sei direito o que é isso mas acho que é alguma erro do primefaces.
achei tambem uma solução, que muda um trecho do web.xml do projeto:

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

para

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

Obrigado denis por tentar me ajudar, valeu :)

Que solução mais exótica! :open_mouth:

E

Então Hebert, talvez essa não seja a melhor forma de resolver, mas por momento foi o que eu consegui, se souber uma forma melhor posta ai :slight_smile:

Hebert_Coelho

Então Hebert, talvez essa não seja a melhor forma de resolver, mas por momento foi o que eu consegui, se souber uma forma melhor posta ai :)Não é criticando ñ, é pq realmente achei exótica. O.o

Nunca vi algo parecido ou precisei também fazer algo parecido. por isso fiquei espantado.

Criado 30 de janeiro de 2013
Ultima resposta 15 de fev. de 2013
Respostas 9
Participantes 3